본문 바로가기

CS/컴퓨터 구조38

[Chapter 2.6 컴퓨터 구조 및 설계] 동기화와 동기화에 사용되는 하드웨어 명령어 본 정리는 CS422-컴퓨터 구조 및 설계 : 하드웨어/소프트웨어 인터페이스. David A. Patterson,존 헤네시 책을 바탕으로 하고 있음을 미리 알립니다. 병렬성과 명령어 : 동기화 태스크가 서로 독립적일 때에는 병렬처리가 쉽지만, 태스크가 서로 자원을 공유하는 경우가 많다. 예를 들어, 두 프로세서가 같은 메모리구역을 공유하고 있을 때, P1 프로세서가 데이터를 읽어오고 P2 프로세서가 데이터를 쓴다고 가정하면, P1 프로세서와 P2 프로세서의 순서에 따라 결과 값이 달라질 것이다. 이렇게 결과값이 달라지는 현상을 바로 데이터 경쟁관계(data races)라고 한다. 이러한 데이터 경쟁관계를 극복하기 위해선 하드웨어의 도움이 필수적이다. 컴퓨팅에 있어서 동기화 매커니즘은 일반적으로는 사용자 .. 2022. 7. 10.
[Chapter 2.5 컴퓨터 구조 및 설계] 메모리 구조와 레지스터 스필링, 함수 및 재귀함수의 컴파일 본 정리는 CS422-컴퓨터 구조 및 설계 : 하드웨어/소프트웨어 인터페이스. David A. Patterson,존 헤네시 책을 바탕으로 하고 있음을 미리 알립니다. 프로시저 혹은 함수가 불리는 과정 프로시저 : 제공되는 인수에 따라서 특정 작업을 수행하는 서브루틴. 프로그래밍에서 함수와 같다고 보면 된다. 메인 루틴을 Caller(호출 프로그램) 프로시저를 Callee(피호출 프로그램)라고 정의하자. 프로그램이 프로시저를 실행할 때 다음과 같은 6가지 과정을 거친다. Caller는 Callee가 접근할 수 있는 곳에 인수를 넣는다. 보통 $a0 - $a3 레지스터를 사용한다.(argument) Caller는 Callee에 제어를 넘긴다. Callee가 필요로 하는 메모리 자원을 얻는다. Callee가 .. 2022. 7. 9.
[Chapter 2.4 컴퓨터 구조 및 설계] MIPS 조건 명령어와 PC 주소 지정 방식 PC 레지스터 본 정리는 CS422-컴퓨터 구조 및 설계 : 하드웨어/소프트웨어 인터페이스. David A. Patterson,존 헤네시 책을 바탕으로 하고 있음을 미리 알립니다. 조건 명령어(Conditional Operations) 프로그래밍할 때 if 문 같은 조건문을 사용할 때가 있다. 이는 MIPS 명령어로 다음과 같다. beq rs, rt, L1 # if (rs == rt) branch to instruction labeled L1; bne rs, rt, L1 # if (rs != rt) branch to instruction labeled L1; j L1 #unconditional jump to instruction labeled L1 beq bne의 두명령어를 조건부 분기(conditional branc.. 2022. 7. 8.
[Chapter 2.3 컴퓨터 구조 및 설계] MIPS 명령어의 기계어 표현과 형식 (format) 본 정리는 CS422-컴퓨터 구조 및 설계 : 하드웨어/소프트웨어 인터페이스. David A. Patterson,존 헤네시 책을 바탕으로 하고 있음을 미리 알립니다. 명령어의 컴퓨터 내부 표현 컴퓨터는 2진수 만을 사용하기 때문에 앞에서 배운 레지스터, 각종 어셈블리 명령어들도 2진수로 해석되어 컴퓨터에 전달된다. 레지스터가 명령어에서 참조가 되기 때문에 레지스터 이름을 숫자로 매핑하는 규칙이 있어야 하는데, $zero는 0번 $t0 – $t7는 8 – 15번 $t8 – $t9는 24 – 25번 $s0 – $s7는 16 – 23번 등의 매핑 규칙이 있다. 명령어 즉, MIPS 어셈블리어는 어떻게 해석될까? 우선, 하나의 명령어가 해석된 MIPS 명령어 즉, 기계어는 데이터 워드와 마찬가지로 32비트의 길.. 2022. 7. 8.