You are on page 1of 2

1.

Thế hệ mt: 0(non-digital computers)(1642-1940)(Pascaline của Blaise Pascal), 1(vacuum-tube)( 1940-1956)(IBM700, ENIAC), 2(Transistor)( 1956-1963)(IBM 7094), 3(Intergrated
Curcuit-vimachtichhop)(1964-1971)(IBM 360), 4(Microprocesor-vixuly)(1971-nay)(XT computer- Intel 8086), Nay(CPU đa nhân), 5(Parallel Processing) *\\* Định luật moore do
Gordon Moore *\\* Máy tính gồm 2 tp cơ bản là Memory và Processor, (1:Màn hình, 2:Mainboard, 3:CPU, 4:Chân cắm dây nối HDD, 5:RAM, 6:Chân cắm mở rộng PCI, 7:Nguồn điện,
8:Ổ quan CD/DVD, 9:Ổ đĩa cứng, 10:Bàn phím, 11:Chuột) *\\* Wafer(Đế chip): Tấm silicon mỏng đã được cấy vật liệu khác nhau để tạo ra những vi mạch, 1-7,9inch, kich thước 12-
18inch | Chip: Mạch tích hợp gắn trên wafer để xử lý các công việc trên máy tính. | Chipset: Tập hợp nhiều chip trên cùng 1 wafer (CPU, GPU, RAM, bán cầu bắc/nam *\\\* 2. Xn-
n-1 + … + X .q1 + X .q0 | 2->16: nhóm từng bộ 4 bit | Dịch bit: SHL: chuyển tất cả bit sáng trái, bỏ bit trái nhất, thêm 0 ở bit phải nhất. ROL: chuyển tất cả bit sang trái,
1….X1X0 = Xn-1.q 1 0
bit trái nhất thành bit phải nhất. XOR: so sánh khác thì = 1. Chuẩn IEC: kibi = 1024, mebi, gibi, tebi, pebi, exbi, zebi, yobi / Chuẩn SI: Kilo = 1024, mega, giga, tera, peta, exa,
zetta,yotta *\\\* 3. Số thực dấu chấm động: Sign (1bit)(bit dấu) + Exponent(8bit-đơn, 11bit-kép), Significand(23bit-đơn, 52bit kép). Chuyển đổi: BƯỚC 1: Đổi X sang hệ nhị phân,
BƯỚC 2: Chuẩn hóa theo dạng +-1.F*2E , BƯỚC 3: Biểu diễn Floating Point. (số âm, số mũ e, phần định trị) / Tại sao chọn k = 127 mà ko phải 128, vì trước khi biểu diễn số chấm
động, chúng ta cần chuẩn hóa thành dạng 1.F*2^E, do vậy luôn để dành 1 bit(số 1) phía trước dấu chấm chứ không đẩy sang trái hết, với 8bit, số mũ gốc ban đầu không thể đạt mức
nhỏ nhất là -128 mà chỉ là -127. Số thực đặc biệt: số 0, số không thể chuẩn hóa, số vô cùng, số báo lỗi. / Miền biểu diễn số chuẩn hóa: lớn nhất là +1.[23 số 1]*2127, nhỏ nhất +1.[23
số 0]*2-126. Miền biễu diễn số ko chuẩn: +0.[23 số 1]*2-127, tuy nhiên IEEE754 quy định +0.[23 số 1]*2-126. Nhỏ nhất là +1.[22 số 0]1*2-127, tuy nhiên IEEE754: +0.[22 số 0]1*2 -126. 4.
NNLT: Là loại nn nhân tạo(c/c++) được cấu thành bởi 2 yếu tố chính: từ vựng, ngữ pháp. NN máy: cho phép người lập trình đưa ra các hướng dẫn đơn giản mà bộ vi xử lý (CPU) có
thể thực hiện được ngay, Các hướng dẫn này đucợ gọi là chỉ thị/lệnh hoặc mã máy, mỗi bộ vi xử lý (CPU) có 1 ngôn ngữ riêng, gọi là bộ lệnh, trong cùng 1 dòng vi xử lý bộ lệnh gần
giống nhau. Hợp ngữ: Các mã máy chỉ là các con số (0/1), trong ngôn ngữ máy không có khái niệm biến-> thay vào đó là địa chỉ ô nhớ, thanh ghi (lưu trữ mã lệnh, dữ liệu), dùng ký
hiệu mã giả thay cho các số biểu diễn địa chỉ ô nhớ, các tên (label, tên biến, tên chương trình), hợp ngữ rất gần với ngôn ngữ máy nhưng lại đủ để con người hiểu và sử dụng tốt hơn
ngôn ngữ máy. Lệnh máy (Instruction) là dãy bit chứa yêu cầu mà bộ xử lý trong CPU (ALU) phải thực hiện, gồm 2 thành phần: Mã lệnh (opcode): thao tác cần thực hiện, thông tin về
toán hạng(operand): các đối tượng bị tác động bởi thao tác chứa trong mã lệnh. Những bộ lệnh thông dụng: x86 của Intel, MIPS, PowerPC của IBM. 2 trường phái thiết kế bộ lệnh:
Complete Instruction Set Computer (CISC): bộ lệnh gồm rất nhiều lệnh, từ đơn giản đến phức tạp, Reduce Instruction Set Computer (RISC): bộ lệnh chỉ gồm các lệnh đơn giản.
Compiler: trình biên dịch ngôn ngữ cấp cao -> hợp ngữ, phụ thuộc vào ngôn ngữ cấp cao được biên dịch, Kiến trúc hệ thống phần cứng bên dưới mà nó đang chạy. Assembler: trình
biên dịch hợp ngữ -> ngôn ngữ máy, một bộ vi xử lý có thể có nhiều assembler của nhiều nhà cung cấp khác nhau chạy trên các OS khác nhau, Assembly program phụ thuộc vào
assembler mà nó sử dụng. Linker: Liên kết các file sau khi đã biên dịch thành mã máy(.exe, .bat, .sh). Loader: . Hoạt động xử lý lệnh của CPU: 2 bước, Nạp lệnh(fetch): di chuyển lệnh
từ memory vào thanh ghi (register) trong CPU, Thực thi lệnh (Excute): giải mã lệnh và thực thi thao tác yêu cầu (Thanh ghi PC -> Mar -> MBR -> IR) || 5. MIPS: Cấu trúc cơ bản: .data
(khai báo data label (biến)), label1: <kiểu lưu trữ><giá trị khởi tạo> \ .text -> .globl <các text label toàn cục, có thể truy xuất từ file khác> .globl main (bắt buộc) \ main: (text label bắt
đầu của program) ví dụ: .data \ str: .asciiz “Hello asm” \ .text \ .globl main \ main: \ addi $v0, $0, 4 ($v0 = 0 + 4 = 4) \ la $a0, str \ syscall || 32 thanh ghi từ $0 -> $31 ($16 - $23) là $s0
- $s7. Trong temporary register: ($8-$15) -> $t0-$t7 || lw, lb, sw, sb, li, la (chép 1 word trong ram vào thanh ghi, chép 1 bype vào byte thấp của thanh ghi, lưu 1 word trong thanh ghi
vào ram, lưu 1 byte thấp trong thanh ghi vào ram, khởi tạo thanh ghi với giá trị, khởi tạo thanh ghi với địa chỉ của nhãn. *Lệnh số học: add rd, rs, rt (rd = rs + rt), addi, addu, sub (rs-
rt), subu, mult (hi, lo) = rs*rt, div (rs, rt) lo= rs/rt (thương), hi = rs%rt(dư), mfhi rd (rd = hi), mflo rd (rd = lo), move rd, rs (rd = rs), *Lệnh nhảy: j label, jal label(lưu vào $ra và nhảy), jsa
rs (đến địa chỉ trong rs), bgez rs, label nhảy đến label nếu rs >= 0, bgtz rs >0, blez rs <= 0, bltz rs < 0, beq rs, rt, label nhảy đến label nếu rs = rt, bne nếu rs!=rt. Ví dụ: .data/ tb1: .asciiz
“nhap ho ten: “/ tb2: .asciiz “xin chao “/ hoten: .space 30/ .text/ #xuat tb1/ li $v0, 4 #v0 = 4/ la $a0, tb1/ syscall/ #nhap ho ten/ li $v0, 8/ la $a0, hoten/ li $a1, 30/ syscall/ #xuat tb2/
li $v0, 4/ la $a0, tb2/ syscall. Thao tác luận lý: and, or, nor, andi, ori. MIPS ko hỗ trợ các phép not, xor, nand,… Dịch luận lý: sll, srl, dịch số học: sra (ko có dịch trái số học). Rẽ
nhánh:beq opr1, opr2, label (opr1 = opr2), bne (opr1 != opr2), rẽ nhánh ko điều kiện: j label. So sánh ko bằng: slt opr1, opr2, opr3 (opr2 < opr3 ? 1 : 0). Vòng lặp: Loop:. Thủ tục trong
mips: đầu, thân, cuối thủ tục || X86: thanh ghi AX: chưa kết quả phép tính, kquả 8bit chứa trong AL. thanh ghi cơ sở BX: chứa địa chỉ cơ sở, thanh ghi đếm CX: chưa số lần lặp của
các lệnh lặp. CL chứa số lần dịch hoặc quay, thanh ghi dữ liệu DX: cùng AX chứa dữ liệu trong các phép tính nhân chia số 16bit, DX còn được dùng để chứa địa chỉ cổng trong các lệnh
vào ra dữ liệu trực tiếp. MOV: di chuyển dữ liệu, MOV đích, nguồn. ví dụ: MOV AX, BX. XCHG: hoán chuyển nd 2 thanh ghi, XCHG đích, nguồn. PUSH: lưu vào ngăn xếp. POP lấy 1 từ
đỉnh ngăn xếp. Các lệnh di chuyển chuỗi MOVS, MOVSB, MOVSW. ADD đích, nguồn, SUB đích, nguồn. MUL: nhân số không dấu, MUL nguồn, lưu vào AX. DIV nguồn, (chia ko dấu), AL
thương, AX dư. AND logic 2 toán hạng, NEG: số bù 2 của toán hạng. CMP Đích nguồn, (đ = n : CF = 0, ZF = 1, đ > n: CF = 0, ZF = 0, đ < n: CF = 1, ZF = 0). RCL đích, CL (quay trái đính CL
lần), RCR. ROL đích, CL (quay trái đính CL lần). SAL đích, CL (dích trái đích CL bit tương ứng đ = đ * 2CL. SHL, SAR. Các lệnh điều khiển chương trình: Nhảy ngắn: JMP SHORT label, JMP
NEAR label, JMP NEAR PTR label, JMP WORD PTR [BX]. Nhảy có điều kiện: =: JE, JZ, !=: JNE, JNZ. JG, JGE, JL, JLE (số có dấu), JA, JB, JAE, JBE (số không dấu). LOOP, LOOPE/LOOPZ,
LOOPNE/LOOPNZ. CALL dùng để gọi chhương trình con. Lệnh ngắt INT, IRET. - Section.data <Khai báo biến tĩnh>\- Section.bss <Khai báo biến động>\ - Section.code\ Phần code
chính của chương trình - Cú pháp trong .data (khai báo biến tĩnh)\ <Tên biến> d<Kiểu DL> <Giá trị khởi tạo>\ - Cú pháp trong .bss (khai báo biến tĩnh)\ <Tên biến> res<Kiểu DL>
<Kích thước lưu trữ khởi tạo>\ - Các kiểu dữ liệu\ b (1 byte) => word (2 bytes) => d (4 bytes) => q (8 bytes) => t (10 bytes)\ Example:\ Message db “Hello world” MẠCH LOGIC: mạch
tổ hợp: Mạch tổ hợp là một bảng mạch được tạo thành từ các cổng luận lý logic gate, gồm m ngõ vào (input) và n ngõ ra (output), + Mỗi ngõ ra là 1 hàm luận lý của các ngõ vào,
Mạch tổ hợp không mang tính ghi nhớ. Độ trễ mạch: Gate delay = Thời điểm tín hiệu ra ổn định - Thời điểm tín hiệu vào ổn định => Ta cần thiết kế mạch sao cho độ trễ mạch là nhỏ
nhất . Mô tả mạch tổ hợp: Bằng ngôn ngữu, bảng chân trị, công thức, sơ đồ. Thiết kế mạch tổ hợp 3 bước: lập bảng chân trị, Viết hàm luận lý, vẽ sơ đồ mạch và thử nghiệm. tìm
hàm luận lí từ bảng chân trị bằng karnaugh. Mạch toàn cộng: thực hiện phép cộng số học 3 bit. Gồm 3 ngõ vào (A,B bit cần cộng, c: bit nhớ) và 2 ngõ ra.Mạch mã hóa theo thứ tự:
các ngõ vào được xem như có độ ưu tiên, ggiá trị ngõ ra phụ thuộc vào các ngõ vào có độ ưu tiên cao nhất. Mạch giải mã: Có n ngõ vào, 2n (hoặc ít hơn) ngõ ra, quy định chỉ có duy
nhất một ngõ ra mang giá trị =1 tại một thời điểm, nếu các ngõ vào tạo thành số nhị phân có giá trị = k thì ngõ ra = 1 đó là ngõ ra = 1 đó là ngõ thứ k. Mạch dồn (multiplexer – MUX)
: Còn gọi là mạch chọn dữ liệu, chọn n ngõ trong 2n ngõ vào để quyết định giá trị của duy nhất 1 ngõ ra, mạch dồn 2n -1 có 2n ngõ nhập, 1 ngõ xuất và n ngõ nhập chọn. Mạch tách
Demultiplexer (DEMUX): Chọn n ngõ trong 2n ngõ vào để quyết định giá trị của duy nhất 1 ngõ ra. Mạch DEMUX 1-2n có 1 ngõ nhập, 2n ngõ xuất và n ngõ nhập chọn.
Bộ lệnh MIPS (Microprocessor without Interlocked Pipeline Stages) và x86 (viết tắt của Intel 8086) là hai kiến trúc máy tính và bộ lệnh (instruction set architecture) khác
nhau. Dưới đây là một số khác biệt chính giữa chúng: Kiến trúc: MIPS được thiết kế theo mô hình RISC (Reduced Instruction Set Computing) trong khi x86 được thiết
kế theo mô hình CISC (Complex Instruction Set Computing). Kiến trúc RISC tập trung vào một số lượng lệnh đơn giản, trong khi kiến trúc CISC chứa nhiều lệnh phức
tạp. Số lượng thanh ghi: MIPS có một số lượng thanh ghi cố định, trong khi x86 có một số lượng thanh ghi lớn hơn và được phân thành nhiều nhóm. Kích thước lệnh:
MIPS có các lệnh cố định với độ dài 32-bit, trong khi x86 có độ dài lệnh linh hoạt hơn, bao gồm lệnh 8-bit, 16-bit, 32-bit và 64-bit. Đặc điểm lệnh: MIPS sử dụng cấu
trúc tải-lưu (load-store) trong đó dữ liệu phải được tải vào thanh ghi trước khi thực hiện các phép tính trên chúng. Trong khi đó, x86 cho phép các lệnh trực tiếp thực
hiện trên bộ nhớ. Phân cấp bộ nhớ: MIPS sử dụng phân cấp bộ nhớ, trong đó có bộ nhớ trung gian (cache) để tăng tốc độ truy xuất dữ liệu. Trong khi đó, x86 sử dụng
bộ nhớ thẳng (flat memory model) trong đó dữ liệu được truy xuất trực tiếp. Độ phức tạp: Vì kiến trúc CISC, x86 có số lượng lệnh phức tạp hơn và điều khiển máy tính
phức tạp hơn so với MIPS. MIPS có thiết kế đơn giản hơn và ít lệnh hơn, giúp dễ dàng hiểu và triển khai. Những khác biệt trên là một số điểm chính giữa bộ lệnh MIPS
và x86. Mỗi kiến trúc có ưu điểm và nhược điểm riêng, và sự lựa chọn giữa hai kiến trúc này phụ thuộc vào yêu cầu và mục đích sử dụng cụ thể của hệ thống.

You might also like