2014년도 컴퓨터기초공학
POCO の命令セット、ハードウェア構成は 2 ページ目以降に示しますが、問題中に不明な点がある場合や手元に資料がな い場合は、各自判断して答え、その旨を記して下さい。
1. (1) 10 進数の-18 を 2 の補数表示の 2 進数で示せ。 (2) 40-18 を 2 の補数を用いることで計算せよ。途中結果も示せ。 (3) (2) の答えを 16 進数で示せ。
2. 16bit RISC POCO で下の命令を順に実行した。
LDHI r0, #0x01 ADDIU r0, #0x02 LD r2,(r0) ADDIU r0, #0x01 LD r3,(r0) ADD r2, r3 ADDIU r0, #0x01 ST r2,(r1)
a) 上記の機械語命令を示せ。またそれぞれの opcode フィールド、function(funct) フィールド (あれば) はどうなるかを示せ b) r0 の値がどのように変化するかを示せ。 c) メモリ中のアドレスの何番地と何番地の内容が足されるか?また答えはどこの番地に格納されるか? 3 (1) 2 ページ目の POCO は、授業でやった構成をやや簡単にしたものである。a)OR 命令、b)LDIU 命令、c)BEZ 命令を 実行する際に、各制御信号線をどのように設定すれば良いか?表に付け加えよ。
表 1: 各命令の制御信号 comsel alu bsel rf csel rwe we pcsel
OR LDIU BEZ
(2) JR 命令を取り付けるためには、上記表中のどの信号線に関連するハードウェアモジュールを改造する必要があるか? 4-1. 0 番地から 100 番地までのメモリに全て 0 を書き込むプログラムを書け。 4-2. 4-1のプログラムをサブルーチン化せよ。スタート番地をr0、0を書き込む数の個数をr1に入れて呼び出すようにせよ。 4-3. 4-2 のプログラムで保存しなければならないレジスタはどれかを示せ。
5-1.32Kword の主記憶に対して 512word のキャッシュを設けた。ブロックサイズは 8 ワードとした時、以下の構成のキャッ シュの index と tag(key) の大きさを求めよ。 (a) ダイレクトマップキャッシュ (b) 2-way セットアソシィアティブキャッ シュ (c) 4-way セットアソシィアティブキャッシュ 5-2. キャッシュミスの原因を三つ示し、それぞれ簡単に説明しなさい。
A) POCO の命令コード
NOP 00000 --- --- 00000 MV rd,rs rd <- rs 00000 ddd sss 00001 AND rd,rs rd <- rd AND rs 00000 ddd sss 00010 OR rd,rs rd <- rd OR rs 00000 ddd sss 00011 SL rd rd <- rd<<1 00000 ddd --- 00100 SR rd rd <- rd>>1 00000 ddd --- 00101 ADD rd,rs rd <- rd + rs 00000 ddd sss 00110 SUB rd,rs rd <- rd - rs 00000 ddd sss 00111 ST rs, (ra) rs -> (ra) 00000 sss aaa 01000 LD rd, (ra) rd <- (ra) 00000 ddd aaa 01001 LDI rd,#X rd <- X (符号拡張) 01000 ddd XXXXXXXX LDIU rd,#X rd <- X (符号拡張なし) 01001 ddd XXXXXXXX ADDI rd,#X rd <- rd + X (符号拡張) 01100 ddd XXXXXXXX ADDIU rd,#X rd <- rd + X (符号拡張なし) 01101 ddd XXXXXXXX LDHI rd,#X rd <- X|0 01010 ddd XXXXXXXX BEZ rd, X if (rd==0) pc <- pc + X 10000 ddd XXXXXXXX BNZ rd, X if (rd!=0) pc <- pc + X 10001 ddd XXXXXXXX BPL rd, X if (rd>=0) pc <- pc + X 10010 ddd XXXXXXXX BMI rd, X if (rd<0) pc <- pc + X 10011 ddd XXXXXXXX JMP X pc <- pc + X 10100 XXXXXXXXXXX JAL X r7 <- pc, pc<- pc + X 10101 XXXXXXXXXXX JR rd pc <- rd 00000 ddd --- 01010
POCO의 명령 세트, 하드웨어 구성은 2번째 페이지 이후에 나타냅니다만, 문제 중에 불분명한 점이 있거나 주위에 자료가 없었던 경우는 각자 판단해서 답변, 그 뜻을 담아 주세요.
1.(1)10진 숫자-18을 2의 보수 표시의 2진 수로 나타낸다.
0을 1로 1은 0으로 (이것을 1의보수라고 부른다) 그후 1을 더한다.
(2)40-18을 2의 보수를 이용함으로써 계산한다. 도중 결과도 제시.
40의 2진수 + (18의 2의 보수)
(3)(2)의 답을 16진 수로 나타낸다.
16진수 표시
2. 16bit RISC POCO로 아래 명령을 차례로 실행했다.
LDHI r0,#0x01 ADDIU r0,#0x02 LD r2,(r0)ADDIU r0,#0x01 LD r3,(r0)ADD r2, r3ADDIU r0,#0x01 ST r2,(r1)
a)위의 기계어 명령을 나타낸다. 또 각 opcode필드, function(funct)필드( 있으면)는어떻게 되는지를 나타내
b)r0의 값이 어떻게 변화하는가를 나타낸다.
c)메모리 중의주소의 몇번지와 몇번지의 내용이 더한다?또 답은 어디의 번지에 격납되는가?
3(1)2번째 페이지의 POCO는 수업에서 한 구성을 약간 간단히 한 것이다.
a)OR명령,
b)LDIU명령,
c)BEZ명령을 실행할 때, 각 제어 신호 선을 어떻게 설정하면 될까?표로 덧붙인다.
표 1:각 명령 제어 신호 comsel alu bsel rf csel rwe we pcsel
OR LDIU BEZ
(2)JR명령을 구하려면 위 표 중의 어느 신호선에 관련된 하드웨어 모듈을 개조할 필요가 있는가?4-1. 0번지부터 100번지까지 메모리에 모두 0을 기입 프로그램을 쓰인다. 4-2. 4-1의 프로그램을 서브 루틴화하자. 시작 주소를 r0,0을 써서 수의 개수를 r1에 넣어 불러내도록 한다. 4-3. 4-2의 프로그램으로 보존해야 하는 레지스터는 어느 것인가를 나타낸다.
5-1.32Kword의 주 기억에 대해서 512word의 현금을 마련했다. 블록 사이즈는 8워드라고 할 때 다음의 구성 꺄아 슈의 index와 tag(key)의 크기를 요구한다.(a)다이렉트 맵 캐시(b)2-way세트 아소시이아티브캬쯔 슈(c)4-way세트가 소시이아티브캬쯔슈 5-2. 캐시 미스의 원인을 세개 내놓고 각 간단히 설명하시오.
A)POCO명령 코드
NOP 00000------00000 MV rd, rs rd<-rs 00000 ddd sss 00001 AND rd, rs rd<-rdAND rs 00000 ddd sss 00010 OR rd, rs rd<-rd OR rs 00000 ddd sss 00011 SL rdrd<-rd<<1 00000 ddd---00100 SR rd rd<-rd>>1 00000 ddd---00101 ADD rd, rs rd<-rd+rs 00000 ddd sss 00110 SUB rd, rs rd<-rd-rs 00000 ddd sss 00111 ST rs,(ra)rs->(ra)00000 sss aaa 01000 LD rd,(ra)rd<-(ra)00000 ddd aaa 01001 LDI rd,#X rd<-X(부호 확장)01000 ddd XXXXXXXX LDIU rd,#X rd<-X(부호 확장 없이)01001 dddXXXXXXXX ADDI rd,#X rd<-rd+X(부호 확장)01100 ddd XXXXXXXX ADDIU rd,#Xrd<-rd+X(부호 확장 없이)01101 ddd XXXXXXXX LDHI rd,#X rd<-X| 0 01010 dddXXXXXXXX BEZ rd, X if(rd==0)pc<-pc+X 10000 ddd XXXXXXXX BNZ rd, Xif(rd!=0)pc<-pc+X 10001 ddd XXXXXXXX BPL rd, X if(rd>=0)pc<-pc+X 10010 dddXXXXXXXX BMI rd, X if(rd<0)pc<-pc+X 10011 ddd XXXXXXXX JMP X pc<-pc+X10100 XXXXXXXXXXX JAL X r7<-pc, pc<-pc+X 10101 XXXXXXXXXXX JR rdpc<-rd 00000 ddd---01010
2015년도 시험문제
POCO の命令セット、ハードウェア構成は 2 ページ目以降に示しますが、問題中に不明な点がある場合や手元に資料がな い場合は、各自判断して答え、その旨を記して下さい。
1. (1) 10 進数の-23 を 2 の補数表示の 2 進数で示せ。 (2) 41-23 を 2 の補数を用いることで計算せよ。途中結果も示せ。 (3) (2) の答えを 16 進数で示せ。
2. 16bit RISC POCO で下の機械語を実行した。
01000 000 00000000 00000 001 000 01001 01000 000 00000001 00000 010 000 01001 00000 010 001 00111 00000 010 000 01000
a) 1 行目の機械語命令について、opcode、operand はどの部分になるかを示せ。 b) アセンブラ表記に変換せよ。c) 0 番地が 3、1番地が 5 であった時、答はどうなるか?また、何番地に格納されるか? 3 (1) 2 ページ目の POCO は、授業でやった構成をやや簡単にしたものである。a)ADDIU 命令、b)AND 命令、c)BNZ 命 令を実行する際に、各制御信号線をどのように設定すれば良いか?表に付け加えよ。
表 1: 各命令の制御信号 comsel alu bsel rf csel rwe we pcsel LD(例) - - 1 1 0 0
4. 0 番地から 9 番地までのメモリの中身を 10 番地から 19 番地にコピーする POCO のプログラムを書け。
5 (1) 4 のプログラムをサブルーチン化せよ。コピー元の番地を r0、コピー先の番地を r1、コピーする数を r2 に入れて呼び 出すようにせよ。 (2) (1) のプログラムで保存しなければならないレジスタはどれかを示せ。
6.128Kword の主記憶に対して 1Kword のキャッシュを設けた。ブロックサイズを 16 ワードとした時、以下の構成のキャッ シュの index と tag(key) の大きさを求めよ。 (a) ダイレクトマップキャッシュ (b) 2-way セットアソシィアティブキャッシュ (c) 4-way セットアソシィアティブキャッ シュ
7. サブルーチンコールは戻り番地を汎用レジスタ (POCO ならば r7) に保存するが、割込みでは専用レジスタに保存する。 これはなぜかを説明しなさい。
8. パイプラインハザードを三つ挙げ、原因を簡単に説明しなさい。
POCO의 명령 세트, 하드웨어 구성은 2번째 페이지 이후에 나타냅니다만, 문제중에 불분명한 점이 있거나 주위에 자료가 없었던 경우는 각자 판단해서 답변,그 뜻을 담아 주세요.
1.(1)10진 숫자-23을 2의 보수 표시의 2진 수로 나타낸다.
(2)41-23을 2의 보수를 이용함으로써 계산한다. 도중 결과도 제시.(3)(2)의 답을 16진 수로 나타낸다.
2. 16bit RISC POCO로 아래 기계어를 실행했다.
01000 000 00000000 00000 001 000 01001 01000 000 00000001 00000 010000 01001 00000 010 001 00111 00000 010 000 01000
a)1행째 기계어 명령에 대해서, opcode, operand는 어느 부분이 되는지를 나타낸다.
b)어셈블러 표기로 변환한다.
c)0번지가 3, 가장 땅이 5로 있을 때, 답은어떻게 되는가?
또 몇번지에 격납되는가?
3(1)2번째 페이지의 POCO는 수업에서 한 구성을 약간 간단히 한 것이다.
a)ADDIU명령,
b)AND명령,
c)BNZ목숨 영을 실행할 때, 각 제어 신호 선을 어떻게 설정하면 될까?표로 덧붙인다.
표 1:각 명령 제어 신호 comsel alu bsel rf csel rwe we pcsel LD(예)1 1 0 0
4. 0번지부터 9번지까지 메모리의 내용을 10번지부터 19번지에 복사하는POCO의 프로그램을 쓰인다.
5(1)4의 프로그램을 서브 루틴화한다. 복사원의 번지를 r0, 카피처의 번지를 r1, 복사할 수를 r2에 넣어 불러내는도록 한다.(2)(1)프로그램에서 보존해야 하는레지스터는 어느 것인가를 나타낸다.
6.128Kword의 주 기억에 대해서 1Kword의 현금을 마련했다. 블록 크기를 16워드라고 할 때 다음의 구성 꺄아 슈의 index와 tag(key)의 크기를 요구한다
.(a)다이렉트 맵 캐시(b)2-way세트가 소시이아티브캬쯔슈
(c)4-way세트 아소시이아티브캬쯔 슈
7. 서브 루틴 콜은 다시 번지를 범용 레지스터(POCO다면 r7)에 저장하지만 삽입에는 전용 레지스터에 저장한다. 이는 왜인지를 설명하시오.
8. 송유관 해이를 세개 들어 원인을 간단하게 설명하시오.
2016년도 기출문제
POCO の命令セット、ハードウェア構成は 2 ページ目以降に示しますが、問題中に不明な点がある場合や手元に資料がな い場合は、各自判断して答え、その旨を記して下さい。
1. (1) 10 進数の-21 を 2 の補数表示の 2 進数で示せ。 (2) 83-21 を 2 の補数を用いることで計算せよ。途中結果も示せ。 (3) (2) の答えを 16 進数で示せ。
2. 16bit RISC POCO で下の機械語を実行した。
01000 001 00000001 00000 010 001 01001 01000 001 00000000 00000 000 001 01001 00000 010 000 00110 00000 010 001 01000
a) 1 行目の機械語命令について、opcode、operand はどの部分になるかを示せ。 b) アセンブラ表記に変換せよ。c) 0 番地が 7、1番地が 3 であった時、答はどうなるか?また、何番地に格納されるか? 3 (1) 2 ページ目の POCO は、授業でやった構成をやや簡単にしたものである。a)LDIU 命令、b)ST 命令、c)AND 命令を 実行する際に、各制御信号線をどのように設定すれば良いか?表に付け加えよ。
表 1: 各命令の制御信号 comsel alu bsel rf csel rwe we pcsel LD(例) - - 1 1 0 0
4. 0番地から9番地までのメモリ中に奇数がいくつあるか調べて、答を10番地に格納するPOCOのプログラムを書け。(ヒ ント:1 と AND する)
5 (1) 4 のプログラムをサブルーチン化せよ。メモリの最初の番地を r0、調べる数を r2 に入れて呼び出し、答を r3 に格納 するようにせよ。 (2) (1) のプログラムで保存しなければならないレジスタはどれかを示せ。
6.256Kword の主記憶に対して 2Kword のキャッシュを設けた。ブロックサイズを 16 ワードとした時、以下の構成のキャッ シュの index と tag(key) の大きさを求めよ。 (a) ダイレクトマップキャッシュ (b) 2-way セットアソシィアティブキャッシュ (c) 4-way セットアソシィアティブキャッ シュ
7.DMA(Direct Memory Access) では通常ブロック転送を用いて多くのデータを転送する。これはなぜかを説明しなさい。
8. パイプラインにおける制御ハザードに対処する方法を簡単に説明しなさい。
POCO의 명령 세트, 하드웨어 구성은 2번째 페이지 이후에 나타냅니다만, 문제중에 불분명한 점이 있거나 주위에 자료가 없었던 경우는 각자 판단해서 답변,그 뜻을 담아 주세요.
1.(1)10진 숫자-21을 2의 보수 표시의 2진 수로 나타낸다.(2)83-21을 2의 보수를 이용함으로써 계산한다. 도중 결과도 제시.(3)(2)의 답을 16진 수로 나타낸다.
2. 16bit RISC POCO로 아래 기계어를 실행했다.
01000 001 00000001 00000 010 001 01001 01000 001 00000000 00000 000001 01001 00000 010 000 00110 00000 010 001 01000
a)1행째 기계어 명령에 대해서, opcode, operand는 어느 부분이 되는지를 나타낸다. b)어셈블러 표기로 변환한다. c)0번지가 7, 가장 땅이 3이었던 때, 답은 어떻게 되는가?또 몇번지에 격납되는가?3(1)2번째 페이지의 POCO는 수업에서한 구성을 약간 간단히 한 것이다. a)LDIU명령, b)ST명령, c)AND명령을 실행할 때, 각 제어 신호 선을 어떻게 설정하면 될까?표로 덧붙인다.
표 1:각 명령 제어 신호 comsel alu bsel rf csel rwe we pcsel LD(예)1 1 0 0
4. 0번지부터 9번지까지 메모리 중 홀수가 몇개 있는지 알아보고, 답을 10번지에 저장하는 POCO의 프로그램을 쓰인다.(히 은토:1과 AND)
5(1)4의 프로그램을 서브 루틴화한다. 메모리의 최초의 번지를 r0알 수를 r2에 넣어 호출, 답을 r3에 저장하도록 한다.(2)(1)프로그램에서 보존해야 하는 레지스터는 어느 것인가를 나타낸다.
6.256Kword의 주 기억에 대해서 2Kword의 현금을 마련했다. 블록 크기를 16워드라고 할 때 다음의 구성 꺄아 슈의 index와 tag(key)의 크기를 요구한다.(a)다이렉트 맵 캐시(b)2-way세트가 소시이아티브캬쯔슈(c)4-way세트 아소시이아티브캬쯔 슈
7.DMA(Direct Memory Access)에서는 통상 블록 전송을 사용하여 많은 데이터를 전송한다. 이는 왜인지를 설명하시오.
8. 파이프 라인의 제어 해저드에 대처하는 방법을 간단하게 설명하시오.