Baitapktmt

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

Chương 1

1.1
1. Siêu máy tính

2. Máy tính nhúng

3. Máy chủ

4. PC (máy tính cá nhân)

1.2
a. Hiệu suất thông qua đường ống

b. Hiệu suất thông qua song song

c. Hiệu suất thông qua dự đoán

d. Thực hiện nhanh các trường hợp thông thường

e. Thứ bậc của kí ức

f.

g. Độ tin cậy thông qua dự phòng

h. Sử dụng tính trừu tượng để đơn giản hoá thiết kế

1.3
Bước 1

Dịch từ ngôn ngữ c sang chương trình hợp ngữ. Công cụ sử dụng cho bước này là trình biên dịch

Bước 2

Dịch từ hợp ngữ sang chương trình mã máy. Công cụ phần mềm được sủ dụng là Assembler

1.4
_Số lượng màu cơ bản là 3 màu

_Số bit cần để thể hiện mỗi màu là 8 bit

_Kích thước khung hình là 1280*1024

a. Kích thước tối thiểu tính bằng byte của một bộ đệm khung đẻ lưu trữ khung là

(1280*1024)*(8*3/8)=3932160 byte/khung

b. Tời gian cần thiếu tối thiểu để khung 100 Mbits/s là:

(3932160*8)/100000000=0,3145728

1.5
a.Số lượng lệnh trên mỗi giây là

P1=(3.0*10^9)/1.5=2.0*10^9

P2=(2.5*10^9)/1=2.5*10^9

P3=(4.0*10^9)/2.2=1.8*10^9

Do đó P2 có hiệu suất cao nhất còn P3 có hiệu suất thấp nhất

b.

Số chu kì= (tốc độ sử lí)*(thời gian thực hiện)

Số lượng lệnh = (Số lượng lệnh trên giây)*(Thời gian thực hiện)

P1:

Số chu kì = (3.0*10^9)*10=3.0*10^10 chu kì


Số lượng lệnh=(2.0*10^9)*10=2.0*10^10 lệnh

P2:

Số chu kì = (2.5*10^9)*10=2.5*10^10 chu kì

Số lượng lệnh=(2.5*10^9)*10=2.5*10^10 lệnh

P2:

Số chu kì = (4.0*10^9)*10=4.0*10^10 chu kì

Số lượng lệnh=(1.8.0*10^9)*10=1.8*10^10 lệnh

c.

P1:

Tổng số lệnh = 2.0*1010 lệnh

CPI mới=1.2*1.5=1.8

Thời gian thực hiện mới=0,7*10=7 giây

Vì vậy, tốc độ xử lí mới=[(2.0*1010)*(1.8)]/7=5.143GHz

P2:

Tổng số lệnh = 2.5*10^10 lệnh

CPI mới=1.2*1.1=1.2

Thời gian thực hiện mới=0,7*10=7 giây

Vì vậy, tốc độ xử lí mới=[(2.5*10^10)*(1.2)]/7=4.268GHz

P3:

Tổng số lệnh = 4.0*10^10 lệnh

CPI mới=1.2*2.2=2.64

Thời gian thực hiện mới=0,7*10=7 giây

Vì vậy, tốc độ xử lí mới=[(4.0*10^10)*(2.64)]/7=6.789GHz

1.6
Số lệnh của lớp A là: 105

Số lệnh của lớp B là: 2*105

Số lệnh của lớp C là: 5*105

Số lệnh của lớp D là:2*105

a. Tổng thời gian thực hiên của P1 là:

Tổng thời gian P1= (105+2*105*2+3*5*105+3*2*105)/(2.5*109)=10,4*10-4 s

Tổng thời gian P2=(105*2+2*105*2+2*5*105+2*2*105)/(3*109)=6.66*10-4 s

Chu kì xung nhịp của P1 là:

10^5+2*10^5*2+3*5*10^5+3*2*10^5=26*10^6

Chu kì xung nhịp của P2 là:

10^5*2+2*10^5*2+2*5*10^5+2*2*10^5=20*10^6

1.7
a.
Thời gian thực hiên chương trình của A là: 1.1 giây

Thời gian thực hiên chương trình của B là: 1.5 giây

Số lệnh thực hiện của chương trình A là: 1.0E9

Số lệnh thực hiện của chương trình B là: 1.2E9

CPI(A)=1.1/(1.0E9x1.0E-9)=1.1

CPI(A)=1.1/(1.2E9x1.0E-9)=1.25

b.

f(B)/f(A)=(Số lượng cậu lệnh(B) x CPI(B)) /)=(Số lượng cậu lệnh(A) x CPI(A))=1.37

c.

Bộ xử lí gốc của chu kì là 1ns:

Thời gian cpu A / Thời gian cpu new = (Số lượng cậu lệnh(A) x CPI(A)) / = (Số lượng cậu lệnh(New) x CPI(New))=(1.0E9 x
1.1)/(6.0E8 x 1.1)=1.67

Thời gian cpu B / Thời gian cpu new = (Số lượng cậu lệnh(B) x CPI(B)) / = (Số lượng cậu lệnh(New) x CPI(New))=(1.2E9 x
1.25)/(6.0E8 x 1.1)=2.27

Chương 2
2.1
Lệnh cho trước là f = g + (h-5)

Vì f,g,h là các thanh ghi được khai báo nên hợp ngữ tương ứng là:

Sub i,h,5

Add f,g,i

2.2
Câu lệnh c là f=g+h+i

2.3
Sub $t0,$s2,$s3
Sll $t0, $t0,2

Add $t0, $t0,,$s6

Lw $to,0[$t0]

Sw $t0,32[$s7]

2.15

opcode rs rt immediate
decimal 43 10 9 32
binary 101011 01010 01001 0000 0000 0010 0000

Biểu diễn mã nhị phân lệnh đã cho là: 101011 01010 01001 0000000000100000

Hệ thập lục phân tương ứng là: AD490020

Lệnh được biểu diễn ở dạng thập lục phân là: sw $t1,32($t2) là 0XAD490020

2.16

Op rs rt rd shamt Immediate address


Binary 000000 00011 00010 00011 00000 100010
Decimal 0 3 2 3 0 34

Sub $v1,$v0,$v1.

2.17
Op=0x23, rs=1, rt=2, const=0x4

Op=0x23 đại diện cho “lw”

Rs=1 đại diện cho $1


Rt=2 đại diện cho $2
const= 0x4

MIPS: lw $2,4[$1]

Mã nhị phân là: 100011 00001 00010 0000000000000100

2.22

Lw $t1,0($s1) #load vào t1 (A) nọi dung của C[0]

Sll $t1,$t1,4 #shift nội dung của ($t1)A (C[0]) còn lại 4 bit và đẻ lại trong thanh ghi $t1(A)

2.27
Add $t0,$t0,0 # i=0

L1: slt $t2,$t0,$s0 # i<a

Beq $t2,$0,Exit # nếu t2==0 thì nhảy tới Exit

Addi $t0,$t0,1 # i=i+1

Add $t1,$t1,$0 # j=0

L2: slt $t2,$t1,$s1 # j<b

Beq $t2,$0,L1 # nếu t2==0 thì nhảy lại L1

Add $t2,$t0,$t1 # i+j

Sll $t4,$t1,4 # t4=4*j

Add $t3,$t4,$s2 #t3=&D[4*j]

Sw $t2,0($t3) #D[4*j]=i+j

Addi $t1,$t1,1 #j=j+1


J L2

Exit

2.29
1. khởi tạo $t1=0

2. Tải giá trị thực của mảng

3. Tính tổng giá trị thực tế của mảng với tổng giá trị

4. Tăng vị trí trong mảng lên để lấy giá trị tiếp theo

5. Tăng bộ đếm lên

6. Kiểm tra xem $t1 có bằng 100 hay không

7. Nếu $t1 chua bằng 100 thì nó sẽ lặp lại

Dịch mã sang C là:

For(i=0;i<100;i++){

Result = Result + MemArry[i];

2.39

Đầu tiên tải 16 bit lên

Lui $t1 ,2001

Bước tiếp theo chèn 16 bit thấp hơn

Ori $t1,$t1,4924

Gía trị cuối cùng trong thanh ghi là giá trị mong muốn

0010 0000 0000 0001 0100 1001 0010 0100

Chương 3
3.1
Biểu diễn 5ED4 ở dạng nhị phân là: 0101 1110 1101 0100

Biểu diễn 07A4 ở dạng nhị phân là: 0000 0111 1010 0100

5ED4- 07A4 = 0101 1110 1101 0100 - 0000 0111 1010 0100 = 0101 0111 0011 0000

Bằng 5730 ở hệ thập lục phân.

3.2
5ED4 = 0101 1110 1101 0100

07A4 = 0000 0111 1010 0100

Do bit đầu tiên của cả 2 đều là 0 nên cả 2 đều dương kết quả giống như 3.1 là 5730.

3.4
Biểu diễn số 4365 ở dạng nhị phân là: 100011110101

Biểu diễn số 3412 ở dạng nhị phân là: 011100001010

4365 – 3412 = 100011110101 - 011100001010 = 000111101011 chuyển sang bát phân là: 0753

3.6
Biểu diễn 185 ở dạng nhị phân là: 10111001
Biểu diễn 122 ở dạng nhị phân là: 1111010

185 - 122 = 10111001 – 1111010 = 111111

111111 trong hệ thập phân là 63, để lưu trữ 63 cần 6 bit nên với biểu diễn 8 bit sẽ không bị tràn.

3.11
Biểu diễn 151 ở dạng nhị phân là: 10010111

Biểu diễn 214 ở dạng nhị phân là: 11010110

151 + 214 = 10010111 + 11010110 = 1 01101101

Vì chúng ta biểu diển ở dạng 8 bit nên số lớn nhất được biểu diễn là 11111111

Nên 151+214=11111111 bằng 255 ở dạng cơ số 10.

3.12

Biểu diễn số 62 ở dạng 6 bit là: 110010

Biểu diễn số 12 ở dạng 6 bit là: 001010

62 * 12= 764 bằng 000 111 110 100 ở cơ số 2.

Interation Step Multiplier Multiplicand Product


0 Khởi tạo 001 010 000 000 110 010 000 000 000 000
1 1a: 0->Không làm gì cả 001 010 000 000 110 010 000 000 000 000
2:Dịch trái multiplicand 001 010 000 001 100 100 000 000 000 000
3:Dịch phải Multiplier 001 010 000 001 100 100 000 000 000 000
2 1a: 1->Pro=Pro+Multiplicand 000 101 000 001 100 100 000 001 100 100
2:Dịch trái multiplicand 000 101 000 011 001 000 000 001 100 100
3:Dịch phải Multiplier 000 010 000 011 001 000 000 001 100 100
3 1a: 0->Không làm gì cả 000 010 000 011 001 000 000 001 100 100
2:Dịch trái multiplicand 000 101 000 110 010 000 000 001 100 100
3:Dịch phải Multiplier 000 001 000 110 010 000 000 001 100 100
4 1a: 1->Pro=Pro+Multiplicand 000 001 000 110 010 000 000 111 110 100
2:Dịch trái multiplicand 000 001 001 100 100 000 000 111 110 100
3:Dịch phải Multiplier 000 000 001 100 100 000 000 111 110 100

3.13

Interation Step Multiplier Multiplicand Product


0 Khởi tạo 0000 0010 0000 0000 0110 0010 0000 0000 0000 0000
1 1a: 0->Không làm gì cả 0001 0010 0000 0000 0110 0010 0000 0000 0000 0000
2:Dịch trái multiplicand 0001 0010 0000 0000 1100 0100 0000 0000 0000 0000
3:Dịch phải Multiplier 0000 1001 0000 0000 1100 0100 0000 0000 0000 0000
2 1a: 1->Pro=Pro+Multiplicand 0000 1001 0000 0000 1100 0100 0000 0000 1100 0100
2:Dịch trái multiplicand 0000 1001 0000 0001 1000 1000 0000 0000 1100 0100
3:Dịch phải Multiplier 0000 0100 0000 0001 1000 1000 0000 0000 1100 0100
3 1a: 0->Không làm gì cả 0000 0100 0000 0001 1000 1000 0000 0000 1100 0100
2:Dịch trái multiplicand 0000 0100 0000 0011 0001 0000 0000 0000 1100 0100
3:Dịch phải Multiplier 0000 0010 0000 0011 0001 0000 0000 0000 1100 0100
4 1a: 0->Không làm gì cả 0000 0010 0000 0011 0001 0000 0000 0000 1100 0100
2:Dịch trái multiplicand 0000 0010 0000 0110 0010 0000 0000 0000 1100 0100
3:Dịch phải Multiplier 0000 0001 0000 0110 0010 0000 0000 0000 1100 0100
5 1a: 1->Pro=Pro+Multiplicand 0000 0001 0000 0110 0010 0000 0000 0110 1110 0100
2:Dịch trái multiplicand 0000 0001 0000 1100 0100 0000 0000 0110 1110 0100
3:Dịch phải Multiplier 0000 0000 0000 1100 0100 0000 0000 0110 1110 0100

3.20
0C000000 chuyển sang nhị phân là 00001100000000000000000000000000
Chuyển sang cơ số 10 là 201326592

Ở dạng bù 2 là 201326592

Ở dạng không dấu cũng là 201326592

3.22

3.23
63.25 chuyển sang nhị phân.

Đầu tiên đổi phần thập phân trước là 63 sang nhị phân là:

63/2 = 31 dư 1

31/2 = 15 dư 1

15/2 = 7 dư 1

7/2 = 3 dư 1

3/2 = 1 dư 1

½ = 0 dư 1

63 chuyển sang nhị phân là 111111

Chuyển 0.25 sang nhị phân .

0.25*2=0.5<1 nên thêm 0

0.5*2=1=1 nên thêm 1

=> Vậy số 63.25 trong hệ hị phân là 00111111.01

=>63.25 trong hệ nhị phân đơn giản là 111111.01

=>63.25 trong hệ nhị phân thông thường là 1.1111101*2^5

Bit dấu là 0

Số mũ 127+5=132=>10000100

Do đó 63.25 ở định dạng độ chính xác đơn là

0 1000010 11111010000000000000000
Ở hệ thập lục phân nó là 0x427D0000

You might also like