728x90
반응형

레지스터 2

MIPS Addressing for 32-Bit [컴퓨터구조]

프로그래밍을 하다보면 상수가 쓰인다. 하지만 상수의 크기가 대부분 작기 때문에 고려하지 않았지만 16-bit면 충분히 표현될 줄 알았다. 32 - bit 상수도 필요하기 마련이다. 하지만 32 bit의 수를 어떻게 만들까?? 그 때 사용하는 명령어가 lui이다. lui, Load Upper immediate 즉, 상수값을 target register(rt)에 상위 16비트, 왼쪽에 복사하는 것이다. 그리고 나머지 하위 16bit는 0으로 만든다. 그렇다면 끝?? 0으로만 채워넣는 것이 아니라. or 명령어의 immedaite 타입으로 2304에 대해서 1을 채워넣는 것이다. 즉, ori 로 61^16 + 2304의 충분한 큰 값을 만들었다. **이렇게 하는 이유는32-bit의 메모리를 저장을 불러오는 것..

MIPS Architecture & Operation, 구조와 연산 [컴퓨터구조]

MIPS의 구조를 보자 MIPS는 32비트의 레지스터를 가지고 있고 각 레지스터는 0-31 비트가 있다. 레지스터를 더 자세히 보자면 32-bit 레지스터를 레지스터 파일(Register File)이라고 한다. 2개의 read port와 1개의 write port가 있다. 1 clock에 2개를 읽고 1개를 쓸 수 있다는 것이다. 저기 그림과 같이 src1 data 와 src2 data를 동시에 읽을 수 있다. 32개의 레지스터 중에서 2개를 읽을 수 있으니까 32-bit짜리 데이터 2개를 읽을 수 있다. (읽을 레지스터는 src1 addr, src2 addr을 통해서 주소를 입력받아서 읽게 되어있다.) (주소는 5-bit) write는 쓰기 위한 데이터 (32-bit) 어떠한 주소에 쓰냐면 dst ad..

728x90
반응형