다음 ISA를 위한 8비트 마이크로 프로세서를 VHDL로 구현하라. 본문에서의 Toyprocessor
에서 명령어 format이 다음과 같이 주소 필드를 5비트로 하고 주소 mode를 위한 1비트를 추
가한다고 가정하자.
----------------------------------------------------------
| opcode 2-bit | mode = 0 or 1 1-bit | address 5-bit |
----------------------------------------------------------
명령어와 데이터는 6-bit 주소 공간을 공유하여 사용한다. 즉 0번지에서 63번지의 주소 공간
을 프로세서가 접근할 수 있는데 명령어와 데이터를 위한 공간이 따로 구분되어 있지는 않다.
제공되는 4가지 명령어는 공통적으로 다음과 같이 mode 필드의 값에 의해 서 주소를 계산
하는 방식이 상대주소 모드와 간접주소 모드 중에서 결정된다.
@ mode = 0인 경우 : 상대주소 명령어로서 address 필드의 5비트가 2의 부소로 해석되어
현재 명령어의 PC값 + 1에 더해져서 effective address를 계산하게 된다.
@ mode = 1인 경우 : 간접주소 명령어로서 address필드에 있는 5비트에 현재 PC+1의 MSB 1 비트를 맨 앞에 붙여서 6비트의 절대주소 값을 만들고 그 번지에 저장된 값을 불러와서 effective address를 취한다.
각 명령어별 opcode는 다음과 같다.
----------------------------------------------------------------------
| C1 C0 | 명령어 이름 | 의미 |
----------------------------------------------------------------------
| 0 0 | LD (load) | 메모리의 값을 읽어서 AC에 저장 |
| 0 1 | ST (store) | AC의 값을 메모리에 저장 |
| 1 0 | ADD (add) | 메모리의 값을 읽어서 Ac의 값에 더한다. |
| 1 1 | JZ (jump if zero)| AC의 값이 0이면 주어진 주소로 분기한다 |
-----------------------------------------------------------------------
에서 명령어 format이 다음과 같이 주소 필드를 5비트로 하고 주소 mode를 위한 1비트를 추
가한다고 가정하자.
----------------------------------------------------------
| opcode 2-bit | mode = 0 or 1 1-bit | address 5-bit |
----------------------------------------------------------
명령어와 데이터는 6-bit 주소 공간을 공유하여 사용한다. 즉 0번지에서 63번지의 주소 공간
을 프로세서가 접근할 수 있는데 명령어와 데이터를 위한 공간이 따로 구분되어 있지는 않다.
제공되는 4가지 명령어는 공통적으로 다음과 같이 mode 필드의 값에 의해 서 주소를 계산
하는 방식이 상대주소 모드와 간접주소 모드 중에서 결정된다.
@ mode = 0인 경우 : 상대주소 명령어로서 address 필드의 5비트가 2의 부소로 해석되어
현재 명령어의 PC값 + 1에 더해져서 effective address를 계산하게 된다.
@ mode = 1인 경우 : 간접주소 명령어로서 address필드에 있는 5비트에 현재 PC+1의 MSB 1 비트를 맨 앞에 붙여서 6비트의 절대주소 값을 만들고 그 번지에 저장된 값을 불러와서 effective address를 취한다.
각 명령어별 opcode는 다음과 같다.
----------------------------------------------------------------------
| C1 C0 | 명령어 이름 | 의미 |
----------------------------------------------------------------------
| 0 0 | LD (load) | 메모리의 값을 읽어서 AC에 저장 |
| 0 1 | ST (store) | AC의 값을 메모리에 저장 |
| 1 0 | ADD (add) | 메모리의 값을 읽어서 Ac의 값에 더한다. |
| 1 1 | JZ (jump if zero)| AC의 값이 0이면 주어진 주소로 분기한다 |
-----------------------------------------------------------------------
풀이
'컴퓨터 구조' 카테고리의 다른 글
| 16-Bit Toy Microprocessor (2) | 2008/04/11 |
|---|---|
| 연습문제 2.5 - 데이터경로 스키메틱 디자인 (0) | 2008/01/20 |
| 연습문제 2.6 (0) | 2008/01/20 |
| 연습문제 2.5 (0) | 2008/01/20 |
| 연습문제 2.4 (2) | 2008/01/18 |
| 8-Bit Toy Microprocessor (1) | 2008/01/08 |

work5.zip
댓글을 달아 주세요