위 그림은 MIPS의 구조를 요약한 것이다.
Processor에서부터 하나씩 뜯어보자.
이 부분은 Registers가 입력을 받고, 출력을 하며, 결과값을 입력받기까지 하는 부분이다.
R-type의 경우 필드가 3개기에 입력 addr이 3개이다. 예를 들어, add dst src1 src2 라고 하면 각각 dst addr, src1 addr, src2 addr로 들어간다. 각각 5bit의 wide를 차지한다.
src1 data와 src2 data는 src1 addr와 src2 addr의 데이터를 출력해준다. write data로 들어온 입력은 dst addr의 데이터에 입력된다.
Program Counter의 출력은 현재 명령어의 위치이다. 위 그림에서는 PC의 출력값을 Adder의 첫 번째 입력으로 주고, 4를 두 번째 입력으로 줘서 다음 명령어를 읽는 주소로 보내주고, branch offset과 더해줘서 Program Counter의 다음 명령어 위치를 반환해준다. Program Counter의 입력은 다음 명령어의 위치이다.
Fetch는 명령어를 메모리에서 읽어와서 CPU 내부로 가져오는 과정을 의미한다. PC = PC+4는 다음 명령어 줄을 읽는 것을 의미하고, 이를 Decode하고 실행 가능하도록 하여 실행하고 다시 다음 명령어를 Fetch하도록 하는 과정이다.
ALU는 Arithmetic Logic Unit(산술 논리 장치)으로, 32비트의 두 값을 입력으로 받고 두 값의 산술 논리 연산을 하여 출력한다. ALU operation이라는 4비트의 제어 신호로써 수행할 연산을 결정한다.
메모리에서 byte는 big Endian 방식으로 저장돼있다. 이는 4바이트 크기의 데이터를 가장 큰 비트부분부터 앞쪽에 저장되는 것을 뜻한다.
그리고 메모리는 word 단위로 저장된다. 1word는 4byte이다. 따라서 주소값 비트의 맨 뒤 두 자리는 항상 00이다.
주소값이 32bit기에 processor와 송수신할때도 32bit로 한다. processor가 addr에 해당하는 메모리를 읽으려하거나 쓰려고 할 수 있는데, 이때 write data, read data가 일어난다.
'학교강의필기장 > 컴퓨터구조' 카테고리의 다른 글
컴퓨터구조[11]: Execution of Branch Instruction on the DataPath (0) | 2023.04.10 |
---|---|
컴퓨터구조[10]: Datapath, Datapath Elements (0) | 2023.04.09 |
컴퓨터구조[8]: address mode - PC-relative / Pseudo-direct (0) | 2023.04.09 |
컴퓨터구조[7]: 프로시저 프레임과 메모리 공간 (0) | 2023.04.09 |
컴퓨터구조[6]: 함수(프로시저)와 스택 포인터 2 - 재귀함수에서의 어셈블리 (0) | 2023.04.09 |