1. 10진수의 숫자를 2의 보수로 만들어서
계산하시오
2의 보수는 양수->음수가 된다.
계산 법은
0을 1로 1을 0으로 -> +1
두 숫자의 뺼샘계산은 그 후 더한 후 오버플로우는 버린다.
2.
opcode는 명령부분(어셈블리어의 첫부부분 5비트일수도 6비트일수도 있다)r형이냐 i형이냐에따라 다름
funct는 r형의 마지막 5비트부분
operand는 대상이 되는 어드레스(주소)
2(1)어셈블리어 변환
표를 참조하여 변환하면된다.
3.
comsel alu-bsel rf-cel rwe we pcsel
or - - - 1 0 00
ldiu 01 10 00 1 0 00
bez - - - 0 0 01
addi 10 01 00 1 0 00
st - - - 0 1 00
ld - - 01 1 0 00
add 00 00 00 1 0 00
ldi 01 01 00 1 0 00
4.서브루트화 하려면 JAL 명령을 이용하면된다.
5.256K워드의 주기억장치에대해 2K워드의 캣쉬를 설계한다. 블록사이즈는 16워드
즉, 블록사이즈는 2의 4승 캣쉬 크기는 2의 11승
N은 7 이고 M은 3이다.
전체 크기는 2의 18승 이기때문에
남은 부분은 8 즉 KEY는 8이 된다.
인덱스는 N의 숫자이므로 7이 된다.
2WAY의 경우 M은 1증가하고 N은 1감소한다.
즉 인덱스는 6이되고 KEY는 8
4WAY의 경우 M은 1증가하고 N은 1감소한다.
즉 인덱스는 5이되고 KEY는 8
6.DMA는 통상블록전송을 이용해서 많은 데이터를 전송한다.
이것은 어째서인가.
DMA(Direct Memory Access)は、この問題を解決するための方法です。まずI/Oから DMA要求を出します。CPUは受付可能であれば、DMAを許可し、バスの利用権を開 放します。I/OはCPUに代わってバスを使って、直接メモリとの間でデータを交換しま す。DMAは一度にデータを転送するブロック転送(バースト転送)に向いていて、大 規模なデータを高速に転送するのに使われます。終了後はバスを開放し、CPUに利 用権を返します。CPUのプログラムはDMAが掛かったことを知らないので、必要があ れば割り込みを掛けて知らせてやる必要があります
DMA(Direct Memory Access)는 이 문제를 해결하기 위한 방법입니다. 우선 I/O에서DMA요구를 냅니다. CPU는 접수 가능하면 DMA을 허용하고 버스 이용권을 펴 놓습니다. I/O는 CPU대신 버스를 이용하고, 직접 메모리와 사이에서 데이터를 주고받습니다. DMA는 한번에 데이터를 전송하는 블록 전송(버스트 전송)에게 유리하며 대대규모의 데이터를 고속으로 전송하는데 쓰입니다. 끝나면 버스를 개방하고 CPU에이용권을 갚겠습니다.CPU의 프로그램은 DMA이 걸린 것을 모르므로 필요가 있레바 새치기를 걸어 알고 할 필요가 있습니다
7.파이프라인 해저드를 3개 나열하고 원인을 간단히 설명하시오
구조 해저드, 자원이 경합해서 편향의 스테이지만 사용할수밖에없는 경우 발생
데이터해저드 데이터의 의존성에 의해 발생
컨트롤 해저드 분기명령이 원인으로 다음에 실행하는 명령의 확정이 되지 않는다.