1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Giáo trình cấu trúc máy tính (nghề kỹ thuật sửa chữa, lắp ráp máy tính cao đẳng)

128 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Giáo trình cấu trúc máy tính (nghề kỹ thuật sửa chữa, lắp ráp máy tính cao đẳng)
Tác giả Trường Cao Đẳng Cơ Điện Xây Dựng Việt Xô
Người hướng dẫn Phạm Anh Đức
Trường học Trường Cao Đẳng Cơ Điện Xây Dựng Việt Xô
Chuyên ngành Kỹ Thuật Sửa Chữa, Lắp Rápt máy tính
Thể loại Giáo trình
Năm xuất bản 2018
Thành phố Ninh Bình
Định dạng
Số trang 128
Dung lượng 1,74 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG 1:TỔ NG QUAN V Ề C Ấ U TRÚC MÁY TÍNH (10)
    • 2.1. Khái ni ệm thông tin và lƣợ ng thông tin (14)
    • 2.2. Sự mã hóa thông tin (16)
    • 3. Đặc điể m c ủ a các th ế h ệ máy tính điệ n t ử (24)
      • 3.1. Th ế h ệ th ứ nh ấ t: (1945-1955) (24)
      • 3.2. Th ế h ệ th ứ hai: (1955-1965) (25)
      • 3.3. Th ế h ệ th ứ ba: (1965-1980) (25)
      • 3.4. Th ế h ệ th ứ tƣ: (1980 - nay ) (25)
    • 4. Ki ế n trúc và t ổ ch ứ c máy tính (26)
      • 4.1. Khái ni ệ m ki ế n trúc máy tính (26)
      • 4.2. Khái ni ệ m t ổ ch ứ c máy tính (27)
    • 5. Các mô hình ki ế n trúc máy tính (27)
      • 5.1. Mô hình ki ế n trúc Von Neumann (28)
      • 5.2. Mô hình ki ế n trúc Havard (29)
  • CHƯƠNG 2: KIẾN TRÚC TẬP LỆNH CỦA MÁY TÍNH (31)
    • 1. Thành ph ần cơ bả n c ủ a m ộ t máy tính (31)
      • 1.1 B ộ x ử lý trung tâm (CPU) (32)
      • 1.2 B ộ nh ớ máy tính (33)
      • 1.3 H ệ th ố ng vào - ra (35)
      • 1.4 Liên k ế t h ệ th ố ng (35)
    • 2. Kiến trúc các tập lệnh CISC và RISC (0)
      • 2.1. Ki ế n trúc t ậ p l ệ nh CISC (37)
      • 2.2. Ki ế n trúc t ậ p l ệ nh RISC (38)
    • 3. Mã l ệ nh (40)
      • 3.1 Khái ni ệ m l ệ nh máy, mã l ệ nh (40)
      • 3.2 T ậ p l ệ nh (41)
  • CHƯƠNG 3: BỘ XỬ LÝ (49)
    • 2. Đườ ng d ẫ n d ữ li ệ u (50)
      • 2.1. Các thành ph ần đườ ng d ẫ n d ữ li ệ u (50)
      • 2.2. Nhi ệ m v ụ c ủa đườ ng d ẫ n d ữ li ệ u (51)
    • 3. B ộ điề u khi ể n (52)
      • 3.1. Ch ức năng bộ điề u khi ể n (52)
      • 3.2. Các phương pháp thiết kế bộ điều khiển (53)
    • 4. Ti ế n trình th ự c hi ệ n l ệ nh máy (55)
      • 4.1. Đọ c l ệ nh (55)
      • 4.2. Gi ả i mã l ệ nh (56)
      • 4.3. Nh ậ n d ữ li ệ u (56)
      • 4.4. Th ự c hi ệ n l ệ nh (57)
      • 4.5 Lưu trữ k ế t qu ả (57)
    • 5. Kỹ thuật ống dẫn lệnh (58)
    • 6. K ỹ thu ậ t siêu ố ng d ẫ n l ệ nh (60)
    • 7. Các chướ ng ng ạ i c ủ a ố ng d ẫ n l ệ nh (61)
      • 7.1. Chướ ng ng ạ i do c ấ u trúc (61)
      • 7.2. Chướ ng ng ạ i do d ữ li ệ u (61)
      • 7.3. Chướ ng ng ại do điề u khi ể n (62)
    • 8. Các lo ạ i ng ắ t (64)
      • 8.1. Ngắt (64)
      • 8.2. Các lo ạ i ng ắ t (64)
      • 8.3. Ho ạt độ ng c ủ a ng ắ t (65)
  • CHƯƠNG 4: BỘ NH Ớ (67)
    • 1.1. Phân lo ạ i b ộ nh ớ theo phương pháp truy nhậ p (67)
    • 1.2. Phân loại theo đọc ghi của bộ nhớ (67)
    • 2. Các lo ạ i b ộ nh ớ bán d ẫ n (68)
      • 2.1. ROM (Read Only Memory) (68)
      • 2.2. RAM (Random Access Memory) (69)
    • 3. H ệ th ố ng nh ớ phân c ấ p (72)
    • 4. K ế t n ố i b ộ nh ớ v ớ i b ộ x ử lý (74)
      • 5.1. Cache (b ộ nh ớ đệ m nhanh) (75)
      • 5.2. T ổ ch ứ c cache (76)
      • 5.3. Các phương pháp ánh xạ đị a ch ỉ (77)
  • CHƯƠNG 5: THIẾ T B Ị NH Ớ NGOÀI (82)
    • 1.1 Đĩa từ (đĩa cứng, đĩa mềm) (82)
    • 1.2 Băng từ (85)
    • 2.1. CD-ROM, CD-R/W (87)
    • 2.2. DVD-ROM, DVD-R/W (87)
    • 2.3. Bluray (88)
    • 4. An toàn dữ liệu trong lưu trữ (89)
      • 4.1. RAID (Redundant Arrays of Inexpensive Disks) (89)
      • 4.2. Các lo ạ i RAID (90)
  • CHƯƠNG 6: CÁC LOẠ I BUS (95)
    • 1. Định nghĩa bus, bus hệ th ố ng (95)
      • 1.1. Định nghĩa bus (95)
      • 1.2. Bus h ệ th ố ng(System bus) (96)
    • 2. Bus đồ ng b ộ và không đồ ng b ộ (96)
      • 2.1. Bus đồ ng b ộ (96)
      • 2.2. Bus không đồng bộ (96)
    • 3. H ệ th ố ng bus phân c ấ p (96)
      • 3.1. Bus n ố i b ộ x ử lý v ớ i b ộ nh ớ (97)
      • 3.2. Bus vào – ra (97)
    • 4. Các lo ạ i bus s ử d ụ ng trong các h ệ th ố ng vi x ử lý (99)
  • CHƯƠNG 7: NGÔN NGỮ ASSEMBLY (101)
    • 1. Tổng quan (9)
      • 2.1. C ấu trúc chương trình hợ p ng ữ (102)
      • 2.2. Cú pháp l ệ nh h ợ p ng ữ (104)
      • 2.3. Các ki ể u d ữ li ệ u trong h ợ p ng ữ (106)
    • 3. Các l ệnh điề u khi ể n (109)
      • 3.1. Các l ệnh cơ bả n (109)
      • 3.2. Các lệnh chuyển điều khiển (0)
    • 4. Ngăn xế p và các th ủ t ụ c (122)
      • 4.1. Ngăn xế p (122)
      • 4.2. Các th ủ t ụ c (124)

Nội dung

Giáo trình cung cấp cho sinh viên những kiến thức cơ bản về cấu trúc máy tính, về tổ chức và hoạt động bộ vi xử lý, các thành phần phần trong hệ thống máy tính và các biện pháp kĩ thuật

NG QUAN V Ề C Ấ U TRÚC MÁY TÍNH

Khái ni ệm thông tin và lƣợ ng thông tin

Hình 1.7: Thông tin về 2 trạng thái có ý nghĩa của hiệu điện thế

Khái niệm về thông tin gắn liền với sự hiểu biết một trạng thái cho sẵn trong nhiều trạng thái có thể có vào một thời điểm cho trước.

Trong hình này, ta quy ước hai trạng thái có ý nghĩa: trạng thái thấp khi hiệu điện thế nhỏ hơn VL và trạng thái cao khi hiệu điện thế lớn hơn VL Quy ước này giúp nhận diện nhanh trạng thái của mạch điện và hỗ trợ phân tích tín hiệu, đồng thời làm rõ ngưỡng hoạt động của hệ thống.

Để có được thông tin từ tín hiệu, ta phải xác định thời điểm quan sát trạng thái của tín hiệu Ví dụ, tại thời điểm t1 tín hiệu ở trạng thái thấp, trong khi tại thời điểm t2 tín hiệu ở trạng thái cao.

Thông tin được đo lường bằng đơn vị thông tin mà ta gọi là bit Lượng thông tin đƣợc định nghĩa bởi công thức:

I = Log2(N) Trong đó: I: là lƣợng thông tin tính bằng bit

N: là số trạng thái có thể có

Trong lý thuyết thông tin, một bit đại diện cho lượng kiến thức cần thiết để xác định một trạng thái trong hai trạng thái có thể xảy ra Nói cách khác, khi có hai trạng thái, việc xác định đúng một trạng thái sẽ mất đúng một bit thông tin Ví dụ với một tập trạng thái gồm 16 lựa chọn, lượng thông tin tối thiểu cần thiết để nhận diện đúng một trạng thái là log2(16) = 4 bit Do đó, sự hiểu biết về một trạng thái trong hệ hai trạng thái tương ứng với 1 bit, còn một trạng thái trong 16 trạng thái lại tương ứng với 4 bit thông tin.

Tám trạng thái đƣợc ghi nhận nhờ 4 số nhị phân (mỗi số nhị phân có thể có giá trị 0 hoặc 1)

Lượng thông tin là số lượng chữ số nhị phân cần thiết để biểu diễn số trạng thái có thể của một hệ thống Vì vậy, một chữ số nhị phân được gọi là một bit Một từ có độ dài n bit có thể đại diện cho 2^n trạng thái khác nhau, giúp mô tả mọi trạng thái có thể của hệ thống bằng cách mã hóa bằng n bit.

Vậy một từ n bit tương ứng với một lượng thông tin n bit

Ví dụ : Tám trạng thái khác nhau ứng với 3 số nhị phân

Sự mã hóa thông tin

2.2.1 Mã và mã hóa là gì?

Mã hóa là phương pháp biến đổi thông tin từ dạng dễ đọc sang dạng mã hóa khó hiểu và chỉ có thể được giải mã bằng công cụ hoặc khóa phù hợp Các loại nội dung như phim ảnh, văn bản và hình ảnh được mã hóa để bảo vệ tính bảo mật, quyền riêng tư và an toàn dữ liệu khi truyền tải hoặc lưu trữ, đồng thời cho phép người nhận hợp lệ giải mã và truy cập nội dung gốc.

Ví dụ một quy tắc mã hóa đơn giản:

Tất cả các ký tự đều bị thay thế bằng ký tự thứ 4 phía trước nó trong bảng chữ cái

Bảng chữ cái gồm: "ABCDEFGHIJKLMNOPQRSTUVXYZ "

Vậy với câu: KY THUAT MA HOA CO BAN

Sau khi mã hóa sẽ có đƣợc chuỗi: GYVPDQXPVIXVDKXVZKVYXJ

Đọc chuỗi này sẽ không cho bạn hiểu nội dung nếu không có khóa để giải mã Khóa ở đây là một chuỗi số gồm bốn ký tự, chính là khóa giải mã bạn cần để hiểu đầy đủ nội dung của chuỗi mã hóa này.

Khi nhận đƣợc chuỗi này, bạn chỉ cần dịch ngƣợc trở về bằng cách thay ký tự bằng ký tự thứ 4 phía sau nó G => K, T => Y,

Như ví dụ trên, toàn bộ ký tự được mã hóa bằng cách thay thế mỗi ký tự bằng ký tự thứ tư đứng trước nó trong bảng chữ cái; đây là quá trình mã hóa Để giải mã, ký tự được thay thế bằng ký tự thứ tư đứng sau nó nhằm khôi phục ký tự gốc.

2.2.2 Biểu diễn số trong máy tính

Hệ thống số là cơ sở định nghĩa phạm vi giá trị có thể có ở mỗi chữ số Ví dụ, trong hệ thập phân, mỗi chữ số có giá trị từ 0 đến 9; trong hệ nhị phân, một chữ số (một bit) chỉ có hai giá trị là 0 hoặc 1 Dạng tổng quát để biểu diễn giá trị của một số là bằng cách ghép các chữ số lại với nhau, mỗi chữ số tuân theo phạm vi giá trị của hệ thống số đang sử dụng.

V k : Số cần biểu diễn giá trị m: sốthứ tự của chữ số phần lẻ

(phần lẻ của số có m chữ số đƣợc đánh số thứ tự từ -1 đến -m) n-1: số thứ tự của chữ số phần nguyên

(phần nguyên của số có n chữ số đƣợc đánh số thứ tự từ 0 đến n-1) b i : giá trị của chữ số thứ i k: hệ số (k: hệ thậpphân; k=2: hệ nhị phân; )

Ví dụ: biểu diễn số 541.2510

Máy tính chủ yếu được cấu thành từ các mạch điện tử có hai trạng thái (0 và 1) Vì đặc điểm này, việc sử dụng hệ nhị phân để biểu diễn trạng thái của các mạch và để mã hoá ký tự, các số cần thiết cho vận hành và xử lý dữ liệu giúp máy tính hoạt động hiệu quả và đơn giản.

* Để biến đổi một số hệ thập phân sang nhị phân, ta có hai phương thức biến đổi:

- Phương thức số dư để biến đổi phần nguyên của số thập phân sang nhị phân

Ví dụ: Đổi 23.37510 sang nhị phân Chúng ta sẽ chuyển đổi phần nguyên dùng phương thức số dư:

- Phương thức nhân để biến đổi phần lẻ của số thập phân sang nhị phân:

0.375 x 2 = 0.75 Phần nguyên = 0 0.75 x 2 = 1.5 Phần nguyên = 1 0.5 x 2 = 1.0 Phần nguyên = 1 Kết quả: (0.375)10 = (0.011)2

Kết quả cuối cùng nhận đƣợc là: 23.37510 = 10111.011 2

Trong quá trình biến đổi phần thập phân lẻ của một số thập phân sang hệ nhị phân bằng phương pháp nhân, có một số trường hợp dẫn đến chu kỳ lặp vô hạn của chuỗi nhị phân Ví dụ điển hình cho hiện tượng này là số 0.2; khi thực hiện các bước nhân liên tiếp với 2 và ghi lại phần nguyên ở từng bước, phần thập phân nhị phân sẽ lặp lại vô hạn và không kết thúc.

Trong trường hợp biến đổi số nhị phân sang các hệ thống số khác nhau, ta có thể ghép các bit nhị phân thành các nhóm để biểu diễn giá trị của số đó trong hệ đếm tương ứng Phương pháp nhóm bit giúp chuyển đổi nhị phân sang các hệ thống như thập phân, thập lục phân hoặc các hệ thống đếm khác một cách dễ dàng thông qua quy ước độ dài nhóm cố định (ví dụ 4 bit cho thập lục phân, 8 bit cho một số hệ thống khác) Nhờ đó quá trình mã hóa và giải mã được tối ưu, nội dung dễ đọc hơn và tối ưu cho SEO khi nói về chuyển đổi nhị phân.

Trong hệ nhị phân, người ta ghép 4 bit thành một chữ số thập lục phân (Hexadecimal) để biểu diễn các giá trị nhỏ gọn, và ghép 3 bit thành một chữ số bát phân (Octal) nhằm tối ưu hóa biểu diễn số ở hệ này Việc nhóm bit theo các chu kỳ 4 và 3 giúp quá trình chuyển đổi giữa nhị phân và các hệ đếm phổ biến trở nên nhanh chóng và dễ dàng hơn, đồng thời tối ưu hóa lưu trữ và xử lý dữ liệu trong máy tính.

Hệ thập phân Hệ nhị phân Hệ bát phân Hệ thập lục phân

Như vậy, dựa trên bảng biến đổi số đã nêu ở trên, ta có thể đưa ra các ví dụ minh họa về cách biến đổi các chữ số giữa các hệ thống số khác nhau khi chuyển sang hệ nhị phân Việc phân tích này làm rõ mối liên hệ giữa các hệ đếm và cách diễn giải dữ liệu số trong thực tế, đồng thời cung cấp nền tảng cho nội dung tối ưu hóa SEO với các từ khóa liên quan như biến đổi số, hệ nhị phân và hệ thống số.

Một từ n bit có thể biểu diễn tất cả các số nguyên từ 0 đến 2^n − 1 Mỗi số nguyên này có một biểu diễn nhị phân duy nhất ở dạng n bit, khi các chữ số 0 được đệm ở đầu để đạt độ dài n bit Do đó, mỗi từ n bit tương ứng với một số thập phân duy nhất và ngược lại, mọi số từ 0 đến 2^n − 1 đều có biểu diễn nhị phân đầy đủ n bit.

Một Byte (gồm 8 bit) có thể biểu diễn các số từ 0 tới 255 và một từ 32 bit cho phép biểu diễn các số từ 0 tới 4294967295

Có nhiều cách để biểu diễn một số n bit có dấu Trong tất cả mọi cách thì bit cao nhất luôn tƣợng trƣng cho dấu.

Khi đó, bit dấu có giá trị là 0 thì số nguyên dương, bit dấu có giá trị là 1 thì số nguyên âm dn-1 dn-2 dn-3 d2 d1 d0

Số nguyên có bit dn-1 là bit dấu và có trị số tƣợng trƣng bởi các bit từ d0tới dn-2 a) Cách biểu diễn bằng trị tuyệt đối và dấu

Trong phương pháp này, bit dn-1 đóng vai trò là bit dấu, còn các bit từ d0 đến dn-2 biểu diễn giá trị tuyệt đối Nhờ vậy, một từ có n bit sẽ tương ứng với một số nguyên có dấu ở hệ thập phân, được xác định dựa trên bit dấu và phần giá trị tuyệt đối được mã hóa bởi các bit còn lại.

- Một Byte (8 bit) có thể biểu diễn các số có dấu từ -127 tới +127

- Có hai cách biểu diễn số không là 0000 0000 (+0) và 1000 0000 (-0) b) Cách biểu diễn bằng số bù 1 và số bù 2

Trong cách biểu diễn này, số âm -N được xác định bằng cách đảo ngược các bit nhị phân của số dương N, tức là thay mỗi bit di bằng số bù của nó: nếu di = 0 thì đổi thành 1 và ngược lại.

- Một Byte cho phép biểu diễn tất cả các số có dấu từ -127 (1000 0000 2 ) đến 127 (0111 1111 2 )

- Có hai cách biểu diễn cho 0 là 0000 0000 (+0) và 1111 1111 (-0)

+ Số bù 2: Để có số bù 2 của một số nào đó, người ta lấy số bù 1 rồi cộng thêm 1.

Chỉ có một giá trị 0: +0 = 000000002, -0 = 00000000 2 c) Cách biểu diễn số nguyên bằng mã BCD (Binary Coder Decimal)

Dùng 4 bit để mã hóa cho các chữ số thập phân từ 0 đến 9.

Có 6 tổ hợp không sử dụng (từ 10 đến 15) : 1010, 1011, 1100, 1101,

29  0010 1001 BCD Các kiểu lưu trữ số BCD

- BCD không gói (Unpacked BCD) : mỗi số BCD 4 bit được lưu trữ trong 4 bit thấp của mỗi byte Ví dụ: số 35 được lưu trữ như sau :

- BCD gói (Packed BCD): hai số BCD được lưu trữ trong 1 byte.

Ví dụ: số 35 được lưu trữ như sau :

Cách biểu diễn số với dấu chấm động

- Tổng quát : một số thực X đƣợc biểu diễn theo kiểu số dấu chấm động nhƣ sau :

M là phần định trị (Mantissa)

Chuẩn IEEE 754 quy định có nhiều cách biểu diễn dấu chấm động và được dùng rộng rãi trong khoa học máy tính ngày nay Hai dạng biểu diễn số chấm động được định nghĩa bởi chuẩn này là biểu diễn nhị phân và biểu diễn thập phân, đi kèm với các quy tắc lưu trữ, làm tròn và xử lý ngoại lệ riêng biệt cho từng dạng Việc tuân thủ IEEE 754 giúp bảo đảm tính nhất quán và độ tin cậy của các phép tính trên các hệ thống máy tính khác nhau.

Trong hệ biểu diễn dấu chấm động, S là bit dấu, S = 0 là số dương, S = 1 là số âm e (8 bit) là mã excess-127 của phần mũ E; e = E + 127 nên E = e - 127 Giá trị 127 được gọi là độ lệch (bias) m (23 bit) là phần lẻ của phần định trị M.

M = 1.m Công thức xác định giá trị của số thực :

Ví dụ 1: xác định giá trị của số thực đƣợc biểu diễn bằng 32 bit nhƣ sau :

Ví dụ 2: Biểu diễn số thực X = 83.75 về dạng dấu chấm động IEEE 754

Ta có: S = 0 vì đây là số dương e - 127 = 6  E = 127 + 6 = 133 10 = 1000 01012 Vậy X = 0 100 0010 1 010 0111 1000 0000 0000 0000

S E M Các qui ƣớc đặc biệt:

- Các bit của e bằng 0, các bit của m bằng 0, thì X =  0

- Các bit của e bằng 1, các bit của m bằng 0, thì X =  

- Các bit của e bằng 1, còn m có ít nhất một bit bằng 1, thì nó không biểu diễn cho số nào cả (NaN - Not a number)

- Phạm vi biểu diễn: 2 -127 đến 2 +127 , 10 -38 đến 10 +38

- e (11 bit) là mã excess - 1023 của phần mũ E: E = e - 1023

- m (52 bit) là phần lẻ của phần định trị M

- Giá trị của số thực:

- Giải giá trị biểu diễn là: 10 -308 đến 10 +308

Đặc điể m c ủ a các th ế h ệ máy tính điệ n t ử

Mục tiêu: - nắm được các đặc trưng của các thế hệ máy tính

- qua mỗi thế hệ thấy được sự phát triển của máy tính điện tử

Máy tính được xây dựng dựa trên đèn điện tử chân không, mỗi đèn tương ứng với một bit nhị phân Vì vậy, cấu trúc máy có khối lượng rất lớn, tốc độ xử lý chậm và tiêu thụ điện năng cao Điển hình cho công nghệ này là máy ENIAC, với khoảng 18.000 đèn điện tử và 1.500 rơ-le, khiến nó trở nên nặng nề và cồng kềnh so với các máy tính hiện đại.

Máy có trọng lượng 30 tấn và công suất tiêu thụ 140 kW Về kiến trúc, nó có 20 thanh ghi, mỗi thanh ghi chứa một số có 10 chữ số thập phân Chiếc máy được lập trình bằng cách thiết lập vị trí của 6000 chuyển mạch (switch); mỗi switch có nhiều vị trí và được nối với vô số ổ cắm (socket) bằng một “rừng” đầu cắm (jumper).

Trong cùng thời kỳ này, Giáo sư toán học John Von Neumann đã đề xuất kiến trúc máy tính IAS tại Princeton Institute for Advanced Study Ý tưởng cốt lõi là chương trình được lưu trữ trong bộ nhớ và bộ điều khiển sẽ lấy lệnh, điều chỉnh dữ liệu trong bộ nhớ, trong khi bộ số học và logic (ALU) được điều khiển để thực hiện các phép tính trên dữ liệu nhị phân, đồng thời quản lý hoạt động của các thiết bị vào/ra Đây chính là nền tảng cho máy tính hiện đại và loại máy tính này được gọi là máy tính Von Neumann.

Máy tính được xây dựng dựa trên đèn bán dẫn (transistor) Bell Labs đã phát minh ra transistor vào năm 1948 và nhờ phát minh này, thế hệ thứ hai của máy tính được đặc trưng bởi việc thay thế các đèn điện tử bằng transistor lưỡng cực Máy tính đầu tiên của thế hệ này là TX-0 (transistorized experimental computer 0).

Máy tính dùng mạch tích hợp (còn gọi là mạch vi điện tử - IC) cho phép đặt hàng chục transistor trong một vỏ chip, từ đó có thể chế tạo máy tính nhỏ hơn, nhanh hơn và rẻ hơn các máy tính dùng transistor ở thế hệ trước Điển hình cho sự tiến bộ này là thế hệ máy System/360 của IBM, một mốc quan trọng với những đột phá công nghệ đem lại cải thiện về hiệu suất, khả năng mở rộng và chi phí vận hành. -**Support Pollinations.AI:**🌸 **Quảng cáo** 🌸 Tìm hiểu thêm về công nghệ IC cùng [Pollinations.AI](https://pollinations.ai/redirect/kofi) để nâng cao nội dung SEO chuyên sâu cho bài viết của bạn!

- Tính tương thích cao: Các máy tính trong cùng một họ có khả năng chạy các chương trình, phần mềm của nhau

Đặc tính đa chương trình cho phép nhiều chương trình cùng lúc nằm trong bộ nhớ Tại một thời điểm có thể có vài chương trình được nạp và một trong số đó được cho chạy, trong khi các chương trình còn lại chờ hoàn thành các thao tác nhập/xuất (I/O) Điều này giúp tối ưu hóa thời gian xử lý và tăng hiệu suất hệ thống bằng cách cho nhiều chương trình hoạt động xen kẽ khi một số chương trình đang chờ I/O.

- Không gian địa chỉ rất lớn (2 24 byte = 16Mb)

Máy tính ngày nay được xây dựng trên các vi mạch LSI và VLSI, tạo nền cho thế hệ máy tính số hiện đại Nhờ công nghệ bán dẫn phát triển vượt bậc, người ta có thể chế tạo các mạch tích hợp ở quy mô cực lớn, giúp máy tính nhỏ gọn hơn, nhẹ hơn, mạnh hơn và có chi phí sản xuất rẻ hơn Nhờ đó, máy tính cá nhân bắt đầu xuất hiện và phát triển mạnh mẽ trong thời kỳ này.

Dựa vào kích thước vật lý, hiệu suất và lĩnh vực sử dụng, máy tính số thế hệ thứ tư được phân thành năm loại chính, mỗi loại có đặc điểm riêng nhưng vẫn có sự giao thoa và có thể phủ lên nhau một phần tùy theo nhu cầu ứng dụng và tiến bộ công nghệ.

Microcomputer, hay PC (personal computer), là loại máy tính nhỏ gọn, được trang bị một chip vi xử lý và các thiết bị ngoại vi cơ bản Thường dành cho người dùng đơn lẻ và có thể hoạt động độc lập hoặc được kết nối trong mạng máy tính để chia sẻ dữ liệu và tài nguyên Với kích thước tiện dụng và chi phí phù hợp, PC phù hợp cho làm việc tại nhà, văn phòng và giải trí với các ứng dụng văn phòng, duyệt web và các nội dung đa phương tiện.

Minicomputer là loại máy tính có kích thước trung bình, lớn hơn PC nhưng nhỏ hơn máy tính cỡ lớn (mainframe) Nó có khả năng xử lý các ứng dụng phức tạp và hỗ trợ nhiều người dùng đồng thời, tương đương với các hệ thống máy tính cỡ lớn.

Minicomputer có khả năng hỗ trợ từ hàng chục đến hàng trăm người làm việc cùng nhau, giúp tăng hiệu suất và tính đồng bộ trong quy trình vận hành Các hệ thống minicomputer được ứng dụng rộng rãi trong các ứng dụng thời gian thực, điển hình là trong điều khiển hàng không và tự động hóa sản xuất.

Supermini là các máy Minicomputer có tốc độ xử lý nhanh nhất trong họ Mini tại một số thời điểm nhất định Do hiệu năng cao, Supermini thường được ứng dụng trong các hệ thống phân chia thời gian, ví dụ như các máy chủ mạng.

Mainframe là máy tính cỡ lớn có khả năng đồng thời hỗ trợ hàng trăm đến hàng ngàn người dùng Thông thường được triển khai cho các tác vụ xử lý theo lô lớn (Large-Batch-Job) và xử lý giao dịch (Transaction Processing), điển hình trong ngành ngân hàng và các tổ chức tài chính.

Siêu máy tính là các hệ thống máy tính được thiết kế đặc biệt để đạt tốc độ tính toán dấu phẩy động cao nhất có thể, phục vụ cho các bài toán khoa học và kỹ thuật đòi hỏi năng lực xử lý lớn Chúng có kiến trúc song song cho phép xử lý đồng thời nhiều tác vụ và dữ liệu, nhưng hiệu quả thường chỉ tối ưu trong một số lĩnh vực nhất định như mô phỏng khí động học, mô hình thời tiết, giải mã gen và các ứng dụng nghiên cứu phức tạp khác.

Ki ế n trúc và t ổ ch ứ c máy tính

Mục tiêu:nắm được các khái niệm kiến trúc máy tính và tổ chức máy tính, phân biệt được hai khái niệm đó.

4.1 Khái niệm kiến trúc máy tính

Kiến trúc máy tính là khoa học về việc lựa chọn và kết nối các thành phần phần cứng để tạo ra máy tính đáp ứng các yêu cầu chức năng (functionality), hiệu năng (performance) và giá thành (cost) Yêu cầu chức năng đòi hỏi máy tính phải có nhiều tính năng phong phú và hữu ích; yêu cầu hiệu năng đòi hỏi tốc độ xử lý cao hơn; và yêu cầu giá thành đòi hỏi máy tính ngày càng rẻ hơn Đạt được cả ba mục tiêu này không hề dễ dàng, nhưng nhờ sự phát triển mạnh mẽ của công nghệ vi xử lý, máy tính ngày nay có tính năng phong phú, hiệu suất cao và giá thành tốt hơn so với các thế hệ trước.

Kiến trúc máy tínhđƣợc cấu thành từ 3 thành phần con: (1)

Kiến trúc tập lệnh (Instruction SetArchitecture), (2)

Vi kiến trúc (Micro Architecture) và Thiết kế hệ thống (System Design)

Kiến trúc tập lệnh là hình ảnh của một hệ thống máy tính ở mức ngôn ngữ máy, cho thấy cách máy móc hiểu và thực thi chương trình Nó gồm các thành phần cơ bản như tập lệnh, các chế độ địa chỉ, các thanh ghi, khuôn dạng địa chỉ và dữ liệu, với mỗi yếu tố đóng vai trò quan trọng trong việc mã hóa lệnh, xác định cách truy cập dữ liệu và điều phối hoạt động của CPU.

Kiến trúc máy tính mô tả ở mức thấp các thành phần của hệ thống máy tính, cách chúng phối hợp và trao đổi thông tin với nhau Nội dung này làm rõ vai trò của từng thành phần như bộ xử lý, bộ nhớ và các thiết bị nhập xuất, cũng như cách dữ liệu di chuyển giữa chúng Kiến trúc máy tính cung cấp khung lý thuyết để phân tích mối quan hệ và sự tương tác giữa các phần cứng khác nhau, từ đó làm cơ sở cho việc tối ưu hiệu suất và hiệu quả của hệ thống Nó giúp trả lời hai câu hỏi căn bản: các thành phần nào có mặt trong hệ thống và chức năng của chúng, và cách các thành phần tương tác để đáp ứng các yêu cầu về tốc độ, băng thông và độ tin cậy của máy tính.

Máy tính hiện đại liên kết các thành phần phần cứng với nhau qua bo mạch chủ và các giao diện như PCIe, DDR, SATA và USB, tạo thành mạng lưới dữ liệu giữa CPU, RAM, bộ nhớ lưu trữ và thiết bị I/O Các thành phần này kết nối và trao đổi thông tin thông qua các bus và chipset, cho phép dữ liệu di chuyển nhanh chóng giữa bộ nhớ và các thiết bị ngoại vi CPU nhận và thực thi tập lệnh bằng chu trình fetch–decode–execute, lấy dữ liệu từ RAM hoặc cache, xử lý bằng ALU và ghi kết quả trở lại RAM hoặc lưu trữ trên đĩa, trong khi RAM và bộ nhớ đệm hỗ trợ tốc độ truy cập dữ liệu Các thiết bị lưu trữ (SSD/HDD), card đồ họa và thiết bị nhập/xuất giao tiếp qua các chuẩn như PCIe, SATA hoặc USB, được điều phối bởi hệ điều hành thông qua driver và tín hiệu ngắt để đồng bộ hóa hoạt động Nhờ sự phối hợp giữa hệ thống bus, chipset và trình điều khiển thiết bị, các thành phần phần cứng tương tác hiệu quả để thực thi tập lệnh và hoàn tất các thao tác do phần mềm yêu cầu.

Thiết kế hệ thống máy tính là tổng thể các thành phần phần cứng của hệ thống, bao gồm hệ thống phối ghép với các bus và chuyển mạch, hệ thống bộ nhớ và các cơ chế giảm tải cho CPU như truy cập trực tiếp bộ nhớ (DMA) Bên cạnh đó, nó còn giải quyết các vấn đề liên quan đến xử lý dữ liệu, xử lý đa nhiệm và xử lý song song nhằm tối ưu hiệu suất, khả năng mở rộng và độ tin cậy của hệ thống.

4.2 Khái niệm tổ chức máy tính

Tổ chức máy tính, hay còn gọi là cấu trúc máy tính, là ngành khoa học nghiên cứu các thành phần của máy tính và cách chúng hoạt động cùng nhau Với định nghĩa này, tổ chức máy tính gần gũi với vi kiến trúc – một thành phần của kiến trúc máy tính Như vậy, kiến trúc máy tính là khái niệm rộng hơn, bao hàm cả tổ chức và cấu trúc máy tính.

Các mô hình ki ế n trúc máy tính

Mục tiêu:Hiểu được các mô hình kiến trúc Von Neuman và Havard

5.1 Mô hình ki ế n trúc Von Neumann

Kiến trúc máy tính von-Neumann đƣợcnhà toán học John von-Neumann đƣa ra vào năm1945 trong mộtbáo cáo vềmáy tính EDVAC nhƣ minh hoạ trên

Hình 1.8: Kiến trúc máy tínhvon- Neumann nguyên thuỷ.

Các máy tính hiện đại ngày nay sử dụng kiến trúc máy tính von-Neumann cải tiến – còn gọi là kiến trúc máy tính von-Neumann hiện đại,nhƣ minh hoạ trên hình bên dưới

Kiến trúcmáy tính von-Neumann hiện đại

Các đặc điểm của kiến trúc von-Neumann

Kiến trúc von- Neumann dựa trên 3 khái niệm cơ sở:

(1) Lệnh và dữ liệu được lưu trữ trong bộ nhớ đọc ghi chia sẻ-một bộ nhớ duy nhất được sử dụng để lưutrữ cảlệnh và dữ liệu

(2) Bộ nhớ đƣợc đánh địa chỉ theo vùng, không phụ thuộc vào nội dung nó lưu trữ

(3) Các lệnhcủa một chương trình được thực hiện tuần tự.

Quá trìnhthực hiện lệnh đƣợc chia thành3 giai đoạn (stages) chính:

(1) CPU đọc (fetch) lệnh từ bộ nhớ ,

(2) CPU giải mã và thực hiện lệnh;nếu lệnh yêu cầu dữ liệu, CPU đọc dữ liệu từ bộ nhớ

(3) CPU ghi kết quả thực hiện lệnhvào bộ nhớ (nếu có).

5.2 Mô hình kiến trúc Havard

Kiến trúc máy tính Harvard là một kiến trúc tiên tiến nhƣminh hoạ trên hình

Kiến trúc Harvard chia bộ nhớ thành hai khu vực riêng biệt: bộ nhớ lưu chương trình (Program Memory) và bộ nhớ lưu dữ liệu (Data Memory) Để kết nối CPU với từng khu vực bộ nhớ, nó dùng hai hệ thống bus riêng biệt; mỗi hệ thống bus có đầy đủ ba thành phần để truyền địa chỉ, dữ liệu và tín hiệu điều khiển Nhờ sự phân chia này, lệnh và dữ liệu được truy cập độc lập, giúp tăng hiệu suất hệ thống và giảm xung đột truy cập bộ nhớ.

Kiến trúc Harvard cho máy tính có thể đạt tốc độ xử lý cao hơn kiến trúc von-Neumann nhờ hai hệ thống bus độc lập với băng thông lớn hơn, cho phép dữ liệu và lệnh được truyền tải riêng biệt và tối ưu hóa hiệu suất hệ thống Nhờ hai bus độc lập này, bộ nhớ trong của kiến trúc Harvard có thể thực hiện nhiều truy cập bộ nhớ đồng thời, giảm xung đột truy cập và tăng hiệu suất, đặc biệt khi CPU áp dụng kỹ thuật pipeline để thực thi các lệnh một cách liên tục.

1 Dựa vào tiêu chuẩn nào người ta phân chia máy tính thành các thế hệ?

2 Đặc trƣng cơ bản của các máy tính thế hệ thứ nhất?

3 Đặc trƣng cơ bản của các máy tính thế hệ thứ hai?

4 Đặc trƣng cơ bản của các máy tính thế hệ thứ ba?

5 Đặc trƣng cơ bản của các máy tính thế hệ thứ tƣ?

6 Khuynh hướng phát triển của máy tính điện tử ngày nay là gì?

7 Việc phân loại máy tính dựa vào tiêu chuẩn nào?

8 Khái niệm thông tin trong máy tính đƣợc hiểu nhƣ thế nào?

9 Lƣợng thông tin là gì ?

10 Sự hiểu biết về một trạng thái trong 4096 trạng thái có thể có ứng với lƣợng thông tin là bao nhiêu?

12 Số nhị phân 8 bit (11001100)2, số này tương ứng với số nguyên thập phân có dấu là bao nhiêu nếu số đang đƣợc biểu diễn trong cách biểu diễn: b Số bù 1 c Số bù 2

13 Đổi các số sau đây: a (011011)2 ra số thập phân. b (55.875)10 ra số nhị phân

14 Biểu diễn số thực (31.75)10 dưới dạng số có dấu chấm động chính xác đơn 32 bit.

KIẾN TRÚC TẬP LỆNH CỦA MÁY TÍNH

Thành ph ần cơ bả n c ủ a m ộ t máy tính

Mục tiêu:Hiểuđược các thành phần cơ bản của một máy vi tính

Thành phần cơ bản của một bộ máy tính gồm: bộ xử lý trung tâm (CPU:

Máy tính gồm CPU (bộ xử lý trung tâm), bộ nhớ và các thiết bị nhập/xuất được kết nối với nhau bằng hệ thống bus Hệ thống bus gồm bus địa chỉ, bus dữ liệu và bus điều khiển; bus địa chỉ và bus dữ liệu dùng để chuyển dữ liệu giữa các bộ phận, trong khi bus điều khiển đảm bảo sự đồng bộ của quá trình trao đổi thông tin Thông thường người ta phân biệt một hệ thống bus dùng cho trao đổi giữa CPU và bộ nhớ (qua bộ nhớ đệm hay cache) và một bus vào-ra phục vụ giao tiếp giữa các thiết bị vào-ra và bộ nhớ trong.

Hình 2.1: Cấu trúc của một hệ máy tính đơn giản

Bộ nhớ Hệ thống vào ra

Bus địa chỉ Bus dữ liệu Đơn vị điều khiển Đơn vị số học và (CU) logic (ALU) Tập thanh ghi

Bộ xử lý trung tâm (CPU)

Một chương trình được sao chép từ đĩa cứng vào bộ nhớ trong (RAM) cùng với các thông tin cần thiết để chương trình hoạt động, các dữ liệu này được nạp từ các bộ phận cung cấp thông tin như bàn phím hay đĩa từ Bộ xử lý trung tâm (CPU) sẽ đọc lệnh và dữ liệu từ RAM, thực hiện các lệnh và lưu kết quả trở lại RAM hoặc xuất kết quả ra các thiết bị ngoại vi như màn hình hay máy in để hiển thị.

Thành phần cơ bản của một máy tính bao gồm :

1.1 Bộ xử lý trung tâm (CPU)

- Điều khiển hoạt động của máy tính

- Xử lý dữ liệu + Nguyên tắc hoạt động cơ bản: CPU hoạt động theo chương trình nằm trong bộnhớ chính.

Cấu trúc cơ bản của CPU:

Hình 2.2: Cấu trúc cơ bản của CPU

Các thành phần cơ bản của CPU

Đơn vị điều khiển (Control Unit – CU) điều khiển hoạt động của máy tính theo chương trình đã định sẵn Trong CPU (Central Processing Unit), các thành phần chính gồm Đơn vị điều khiển (CU) phối hợp với Đơn vị số học và logic (ALU) để thực hiện các phép toán và thao tác logic, và tập thanh ghi (RF) lưu trữ dữ liệu cùng kết quả tạm thời Đơn vị ghép nối bus (BIU) chịu trách nhiệm kết nối CPU với bộ nhớ và các thiết bị ngoại vi, truyền nhận dữ liệu và tín hiệu điều khiển giữa các thành phần để máy tính hoạt động đồng bộ.

- Đơn vị số học và logic (Arithmetic and Logic Unit – ALU): thực hiện các phép toán số học và các phép toán logic trên các dữ liệu cụ thể.

- Tập thanh ghi (Register File - RF): lưu giữ các thông tin tạm thời phục vụ cho hoạt động của CPU

- Đơn vị nối ghép bus (Bus interface Unit - BIU): kết nối và trao đổi thông tin giữa bus bên trong (internal bus) và bus bên ngoài (external bus).

- + Chức năng: lưu trữ chương trình và dữ liệu.

- + Các thao tác cơ bản với bộ nhớ:

- Bộ nhớ trong (Internal Memory)

- Bộ nhớ ngoài (External Memory)

Hình 2.3: Bộ nhớ máy tính

 Bộ nhớ trong (Internal memory)

- Chức năng và đặc điểm:

+ Chứa các thông tin mà CPU có thể trao đổi trực tiếp.

+ Sử dụng bộ nhớ bán dẫn: ROM, RAM.

- Các loại bộ nhớ trong: Bộ nhớ chính, Bộ nhớ cache (bộ nhớ đệm nhanh).

 Bộ nhớ chính (Main memory)

- Chứa các chương trình và dữ liệu đang được CPU sử dụng.

- Tổ chức thành các ngăn nhớ đƣợc đánh địa chỉ

- Ngăn nhớ thường được tổ chức theo byte.

- Nội dung của ngăn nhớ có thể thay đổi, song địa chỉ vật lý của ngăn nhớ luôn cố định.

 Bộ nhớ đệm nhanh (Cache memory)

- Bộ nhớ có tốc độ nhanh đƣợc đặt đệm giữa CPU và bộ nhớ chính nhằm tăng tốc độ CPU truy nhập bộ nhớ.

- Dung lƣợng nhỏ hơn bộ nhớ chính

- Cache thường được chia thành một số mức

- Cache có thể đƣợc tích hợp trên chip vi xử lý.

- Cache có thể có hoặc không

Hình 2.4: Bộ nhớ đệm Cache

 Bộ nhớ ngoài (External memory)

- Chức năng và đặc điểm:

+ Lưu giữ tài nguyên phần mềm của máy tính.

+ Được kết nối với hệ thống dưới dạng các thiết bị vào-ra

- Các loại bộ nhớ ngoài:

+ Bộ nhớ từ: đĩa cứng, đĩa mềm.

+ Bộ nhớ quang: đĩa CD, DVD

+ Bộ nhớ bán dẫn: Flash disk, memory card.

- Chức năng: Trao đổi thông tin giữa máy tính với thế giới bên ngoài

- Các thao tác cơ bản: + Vào dữ liệu (Input)

+ Các thiết bị ngoại vi (Peripheral Devices): chuyển đổi dữ liệu giữa bên trong và bên ngoài máy tính

Thiết bị vào: bàn phím, chuột, máy quét

Thiết bị ra: màn hình, máy in

+ Các mô-đun vào ra (IO Modules): nối ghép các thiết bị ngoại vi với máy tính

Luồng thông tin trong máy tính được hình thành từ các mô-đun chính như CPU, mô-đun nhớ và mô-đun vào ra, và tất cả chúng cần được kết nối với nhau để thực hiện xử lý dữ liệu, trao đổi thông tin và điều phối hoạt động của hệ thống máy tính.

Hình 2.5 Kết nối mô đun nhớ

Hình 2.6 Kết nối mô đun vào ra

Kiến trúc các tập lệnh CISC và RISC

2 Ki ế n trúc các t ậ p l ệ nh CISC và RISC

Mục tiêu: Hiểu được kiến trúc tập lệnh Cisc và Risc

2.1 Kiến trúc tập lệnh CISC

Kiến trúc CISC (Complex Instruction Set Computer) xuất hiện từ những năm 1960, khi người ta nhận thấy các chương trình dịch khó tận dụng thanh ghi và các vi lệnh được thực thi nhanh hơn lệnh thông thường, từ đó người ta nhận thấy cần giảm độ dài của chương trình Với các đặc tính này, các hệ thống CISC ưu tiên các kiểu địa chỉ ô nhớ-ô nhớ và ô nhớ-thanh ghi, đồng thời tích hợp lệnh phức tạp với nhiều trường định vị Do đó, các lệnh có độ dài biến đổi và việc sử dụng bộ điều khiển vi chương trình (microprogrammed control unit) trở nên hiệu quả để quản lý và giải mã các lệnh đa dạng.

Bảng 2.1 mô tả đặc tính của một số máy CISC tiêu biểu Nhìn chung, cả ba máy đều có nhiều lệnh và lệnh có chiều dài thay đổi, thể hiện tính đa dạng và phức tạp của hệ tập lệnh CISC.

Nhiều cách thực hiện lệnh và nhiều vi chương trình được dùng

Tiến bộ gần đây trong lĩnh vực mạch tích hợp (IC) và kỹ thuật dịch chương trình đòi hỏi phải xem xét lại các nhận định trước đây, nhất là khi có một khảo sát định lượng về việc dùng tập lệnh của các máy CISC Những kết quả này nhấn mạnh sự cần thiết của việc rà soát lại các giả định cũ và đánh giá lại hiệu suất, chi phí và khả năng mở rộng của các thiết kế liên quan đến IC và tập lệnh CISC trong bối cảnh công nghệ hiện nay.

Bộ nhớ vi chương trình

Chiều dài lệnh (tính bằng bit)

Cách thực hiện lệnh ƣợn

ECL - MSI Thanh ghi- thanh ộ ớ ộ ớ ộ ớ

TTl - MSI Thanh ghi - thanh ghi ộ ớ ộ ớ ộ ớ

Bảng 2.1: Đặc tính của một vài máy CISC

2.2 Kiến trúc tập lệnh RISC

Ví dụ, trình biên dịch đã nhận ra việc sử dụng thanh ghi và không có sự khác biệt đáng kể khi dùng ô nhớ cho vi chương trình hay ô nhớ cho chương trình Điều này dẫn tới khái niệm về một máy tính với tập lệnh RISC (Reduced Instruction Set Computing) vào đầu những năm 1980 Các máy RISC dựa chủ yếu vào một tập lệnh cho phép thực hiện kỹ thuật ống dẫn (pipelining) một cách tối ưu nhất bằng cách thiết kế các lệnh có chiều dài cố định, dạng đơn giản và dễ giải mã Máy RISC thực thi lệnh theo kiểu thanh ghi-thanh ghi.

Chỉ có các lệnh ghi hoặc đọc ô nhớ mới cho phép thâm nhập vào ô nhớ

Bảng 2.2 diễn tả ba mẫu máy RISC đầu tiên: mẫu máy của IBM (IBM

Ba máy được nhắc tới—Berkeley với RISC I của Patterson và Stanford với MIPS của Hennessy—đều có bộ điều khiển bằng mạch điện (không có ô nhớ vi chương trình), có chiều dài lệnh cố định 32 bit, thi hành lệnh theo kiểu thanh ghi - thanh ghi và chỉ có một tập lệnh khá nhỏ.

Bộ xử lý IBM 801 RISC1 MIPS

Dung lượng bộ nhớ vi chương trình Độ dài lệnh tính bằn ỹ thuậ ế ạ ự iệ lệ

Bảng 2.2 : Đặc tính của ba mẫu đầu tiên máy RISC

Tóm lại, ta có thể định nghĩa mạch xử lý RISC bởi các tính chất sau:

- Có một số ít lệnh (thông thường dưới 100 lệnh )

- Có một số ít các kiểu định vị (thông thường hai kiểu: định vị tức thì và định vị gián tiếp thông qua một thanh ghi)

- Có một số ít dạng lệnh (một hoặc hai)

- Các lệnh đều có cùng chiều dài

- Chỉ có các lệnh ghi hoặc đọc ô nhớ mới thâm nhập vào bộ nhớ

- Dùng bộ tạo tín hiệu điều khiển bằng mạch điện để tránh chu kỳ giải mã các vi lệnh làm cho thời gian thực hiện lệnh kéo dài

- Bộ xử lý RISC có nhiều thanh ghi để giảm bớt việc thâm nhập vào bộ nhớ trong

Ngoài ra các bộ xử lý RISC đầu tiên thực hiện tất cả các lệnh trong một chu kỳ máy

Bộ xử lý RISC có các lợi điểm sau :

Trong thiết kế bộ xử lý, phần diện tích dành cho bộ điều khiển giảm từ 60% ở các bộ xử lý CISC xuống còn 10% ở các bộ xử lý RISC Như vậy, có thể tích hợp thêm các thành phần quan trọng bên trong lõi xử lý như thanh ghi, cổng vào/ra và bộ nhớ cache, từ đó tối ưu hóa không gian trên chip và nâng cao hiệu suất hệ thống.

Hiệu suất tính toán cao được đạt nhờ giải mã lệnh đơn giản, số lượng thanh ghi lớn giúp giảm thiểu truy cập bộ nhớ và tối ưu hóa xử lý dữ liệu Đồng thời, kỹ thuật ống dẫn liên tục (pipeline) mang lại hiệu quả cao bằng cách đảm bảo thời gian thực thi của các lệnh đồng nhất và có cùng dạng, từ đó tối ưu hóa luồng lệnh và tăng tốc độ xử lý hệ thống.

- Thời gian cần thiết để thiết kế bộ điều khiển là ít Điều này góp phần làm giảm chi phí thiết kế

- Bộ điều khiển trở nên đơn giản và gọn làm cho ít rủi ro mắc phải sai sót mà ta gặp thường trong bộ điều khiển

Trước những điều lợi không chối cãi được, kiến trúc RISC có một số bất lợi:

 Các chương trình dài ra so với chương trình viết cho bộ xử lý CISC Điều này do các nguyên nhân sau :

Quyền truy cập bộ nhớ bị giới hạn nghiêm ngặt: mọi lệnh ngoài lệnh đọc và ghi vào bộ nhớ đều bị cấm thâm nhập Do đó, để hoàn thành một tác vụ cụ thể, chương trình phải sử dụng nhiều lệnh hơn để phối hợp các thao tác đọc và ghi một cách hiệu quả Quy định này tăng tính an toàn và ổn định cho hệ thống đồng thời đòi hỏi người phát triển thiết kế luồng lệnh một cách cẩn thận nhằm tối ưu hóa hiệu suất và đảm bảo mục tiêu được đạt đúng yêu cầu.

Để tối ưu hoá hiệu suất và định vị trong hệ thống, cần tính toán địa chỉ hiệu dụng một cách chính xác vì không có nhiều cách định vị sẵn Do tập lệnh có ít lệnh, những lệnh thiếu sẵn có thể được thay thế bằng một chuỗi lệnh của bộ xử lý RISC, đảm bảo tính tương thích và cải thiện hiệu suất thực thi.

Các chương trình dịch gặp nhiều khó khăn do số lượng lệnh hạn chế, khiến không có nhiều lựa chọn để diễn dịch các cấu trúc của chương trình gốc Sự cứng nhắc của kỹ thuật ống dẫn cũng gây khó khăn, làm phức tạp quá trình phân tích và tối ưu hóa mã nguồn.

 Có ít lệnh trợ giúp cho ngôn ngữ cấp cao

Các bộ xử lý CISC hỗ trợ tốt hơn các ngôn ngữ cấp cao nhờ tập lệnh phức tạp của chúng Ví dụ, Honeywell đã chế tạo một máy có một lệnh cho mỗi động từ của ngôn ngữ COBOL, minh họa cho cách một tập lệnh riêng lẻ cho từng động từ có thể tối ưu hóa việc thực thi các câu lệnh COBOL.

Các tiến bộ gần đây cho phép xếp đặt trong một vi mạch, một bộ xử lý RISC nền và nhiều toán tử chuyên dùng

Thí dụ, bộ xử lý 860 của Intel bao gồm một bộ xử lý RISC, bộ làm tính với các số lẻ và một bộ tạo tín hiệu đồ hoạ.

Mã l ệ nh

Mục tiêu:nắm được lệnh máy,hiểu được mã lệnh

3.1 Khái niệm lệnh máy, mã lệnh

Một lệnh mô tả bằng mã nhị phân có thể dài từ 1 đến 6 byte Cấu trúc chung của một lệnh bao gồm:

Mã lệnh nhằm xác định tương ứng với lệnh là hoạt động hay thao tác nào cần đƣợc thực hiện.

Các toán hạng là đối tƣợng đƣợc xử lý bởi lệnh.

Ví dụ MOV AX,BX minh họa rõ lệnh MOV, một mã lệnh dùng để chuyển dữ liệu trong ngôn ngữ hợp ngữ Lệnh này được nhận diện bởi opcode (mã lệnh) để xác định thao tác sao chép dữ liệu từ nguồn tới đích Trong trường hợp MOV AX,BX, AX và BX là các toán hạng được lệnh xử lý: BX làm nguồn và AX làm đích, tức là dữ liệu từ BX được sao chép sang AX.

Tùy theo từng lệnh mà độ dài của nó có sự khác nhau.

Trong hệ thống máy tính, mỗi bộ xử lý có một tập lệnh xác định, gồm hàng chục đến hàng trăm lệnh khác nhau Mỗi lệnh là một chuỗi nhị phân mà bộ xử lý có thể hiểu và thực thi để thực hiện một thao tác cụ thể.

Các lệnh đƣợc mô tả bằng kí hiệu gợi nhớ.

Việc gán trị cho các biểu thức số học và logic được thực hiện thông qua một số lệnh của máy Với các kiến trúc RISC, quá trình này dựa vào một tập hợp lệnh ngắn gọn và tối ưu, chủ yếu thao tác trên thanh ghi và giữa thanh ghi với bộ nhớ Các lệnh phổ biến trong khuôn khổ này gồm di chuyển dữ liệu giữa các thanh ghi và thực hiện các phép tính số học cùng phép toán logic, từ đó cho phép gán trị cho các biểu thức một cách nhanh chóng và hiệu quả.

LOAD Ri, M (địa chỉ) ; M[địa chỉ] ← Ri : nạp dữ liệu

STORE Ri, M(địa chỉ); Ri ← M[địa chỉ] : Cất dữ liệu. Địa chỉ đƣợc tính tuỳ theo kiểu định vị đƣợc dùng

- Lệnh tính toán số học: tính toán số nguyên trên nội dung của hai thanh ghi Ri, Rj và xếp kết quả vào trong Rk:

ADDD (cộng số có dấu chấm động, chính xác kép)

SUBD (trừ số có dấu chấm động, chính xác kép)

- Lệnh logic: thực hiện phép tính logic cho từng bit một

NEG (lệnh lấy số bù 1 )

Hình 2.8: Minh hoạ lệnh dịch chuyển và quay vòng

Các lệnh dịch chuyển số học (SHIFT) hoặc logic (ROTATE) cho phép dịch chuyển các bit của dữ liệu sang phải hoặc sang trái, có thể có hoặc không số lần dịch chuyển, và được thực hiện trên một thanh ghi với kết quả lưu vào một thanh ghi khác Số lần dịch chuyển—mỗi lần dịch sang phải hoặc sang trái một bit—thường được xác định trong thanh ghi thứ ba Hình 2.5 minh họa các lệnh này.

Cho các kiến trúc kiểu RISC, ta có :

SLL (shift left logical : dịch trái logic) SRL (shift right logical : dịch phải logic) SRA (shift right arithemtic : dịch phải sốhọc)

Lệnh có điều kiện có dạng :

Nếu thì nếu không

(IF THEN ELSE )

Lệnh này buộc phải ghi nhớđiều kiện và nhảy vòng nếu điều kiện đƣợc thoả a) Ghi nhớđiều kiện

Bộ làm tính ALU cho ra kết quả ở đầu ra tùy thuộc vào các ngã vào và phép tính cần thực hiện, đồng thời cung cấp thêm thông tin về kết quả dưới dạng các bit trạng thái Các bit trạng thái này là các đại lượng logic ĐÚNG hoặc SAI (Hình 2.6).

Trong các bit trạng thái ta có bit dấu S (Sign - Đúng nếu kết quả âm), bit trắc nghiệm zero Z (Zero - Đúng nếu kết quả bằng không), bit tràn OVF

Overflow xảy ra khi phép tính số học làm cho thanh ghi không đủ khả năng lưu trữ kết quả Trong trường hợp này, bit mang tín hiệu C (carry) sẽ được đặt bằng 1 khi có ngã ra (carry out) từ phép toán Các bit liên quan này thường được gọi là các bit mã điều kiện hay bit trạng thái và được dùng để báo hiệu trạng thái của phép tính cho các lệnh điều khiển và kiểm tra lỗi trong hệ thống máy tính.

Hình 2.9: Bit trạng thái mà ALU tạo ra

Có hai kỹ thuật cơ bản để ghi nhớ các bit trạng thái:

Cách thứ nhất, ghi các trạng thái trong một thanh ghi đa dụng.

Ví dụ lệnh CMP Rk, Ri, Rj

Lệnh trên sẽ làm phép tính trừ Ri - Rj mà không ghi kết quả phép trừ, mà lại

Bit C ghi các bit trạng thái vào thanh ghi Rk — thanh ghi này được dùng cho lệnh nhảy có điều kiện Lợi ích của kỹ thuật này là cho phép lưu trữ nhiều trạng thái sau nhiều phép tính để dùng về sau Nhược điểm là phải dùng một thanh ghi đa dụng để ghi lại trạng thái sau mỗi phép tính, và số thanh ghi này bị giới hạn ở 32 trong các bộ xử lý hiện đại.

Cách thứ hai là lưu giữ các bit trạng thái vào một thanh ghi đặc biệt gọi là thanh ghi trạng thái Việc bảo toàn nội dung của thanh ghi trạng thái được giải quyết bằng nhiều cách Trong kiến trúc SPARC, chỉ một số giới hạn lệnh được phép thay đổi thanh ghi trạng thái, ví dụ như lệnh ADDCC, SUBCC (các lệnh này thực hiện phép tính cộng ADD và phép tính trừ SUB và đồng thời làm thay đổi thanh ghi trạng thái) Trong kiến trúc PowerPC, thanh ghi trạng thái được phân thành 8 trường, mỗi trường có chức năng riêng và ảnh hưởng đến quá trình xử lý.

4 bit, vậy là thanh ghi đã phân thành 8 thanh ghi trạng thái con b) Nhảy vòng

Các lệnh nhảy có điều kiện chỉ thực thi khi điều kiện kèm theo được thoả mãn; ngược lại, luồng thực thi sẽ tiếp tục với lệnh kế tiếp Lệnh nhảy kiểm tra các thanh ghi trạng thái (cờ) và quyết định có nhảy hay không dựa trên điều kiện nêu trong lệnh Nhờ cơ chế này, chương trình có thể nhảy tới nhãn hoặc vòng lặp tại đúng thời điểm, trong khi nếu điều kiện không đạt, nó vẫn tiếp tục thực thi các lệnh phía sau một cách bình thường.

Chúng ta xem một ví dụ thực hiện lệnh nhảy có điều kiện

Giả sử trạng thái sau khi bộ xử lý thi hành một tác vụ, được lưu trữ trong thanh ghi, và bộ xử lý thi hành các lệnh sau :

1 CMP R4, R1, R2 : So sánh R1 và R2 bằng cách trừ R1 cho R2 và lưu giữ trạng thái trong R4

2 BGT R4, +2 : Nhảy bỏ 2 lệnh nếu R1 > R2

3 ADD R3, R0, R2 : R0 có giá trị 0 Chuyển nội dung của R2 vào R3

5 ADD R3, R0, R1 : chuyển nội dung R1 vào R3

Nếu R1 > R2 thì chuỗi lệnh đƣợc thi hành là 1, 2, 5, 6 đƣợc thi hành, nếu không thì chuỗi lệnh 1, 2, 3, 4, 6 đƣợc thi hành

Chuỗi các lệnh trên , trong đó có 2 lệnh nhảy, thực hiện công việc sau đây : Nếu R1 > R2 thì R3 = R1 nếu không R3 = R2

Trong các CPU hiện đại, lệnh nhảy có thể làm tốc độ thực thi bị chậm lại do tác động của kỹ thuật ống dẫn (pipeline) Để tối ưu hiệu suất, nhiều bộ xử lý sử dụng kỹ thuật ống dẫn và ở một số trường hợp vẫn thay thế lệnh nhảy bằng lệnh di chuyển có điều kiện (conditional move) để tránh nhảy và giảm thiểu độ trễ Thí dụ trên đây có thể được viết lại bằng cách dùng lệnh di chuyển có điều kiện thay cho nhảy, nhằm duy trì luồng điều khiển trơn tru và cải thiện hiệu suất.

1 CMP R4, R1, R2 : So sánh R1 và R2 và để các bit trạng thái trong R4

3 MGT R4, R3, R1 : (MGT : Move if greater than) Nếu R1 > R2 thì di chuyển R1 vào R3

Các lệnh vòng lặp được thực thi bằng lệnh nhảy có điều kiện như đã nêu ở trên Trong cơ chế này, số lần lặp được quản lý bởi một bộ đếm vòng lặp và sau mỗi vòng lặp người ta kiểm tra bộ đếm để xem đã đủ số vòng cần thực hiện hay chưa Nhờ đó, vòng lặp có thể lặp đi lặp lại cho đến khi điều kiện dừng được đáp ứng, mang lại sự linh hoạt và hiệu quả cho quá trình thực thi chương trình.

Bộ xử lý PowerPC có một lệnh quản lý vòng lặp

Với thanh ghi Ri chứa số lần lặp lại Lệnh này làm các công việc sau:

Nếu Ri 0, PC := PC + độ dời Nếu không thì tiếp tục thi hành lệnh kế

* Thâm nhập bộ nhớ ngăn xếp

Ngăn xếp là một cơ chế tổ chức bộ nhớ cho phép chỉ đọc hoặc ghi tại đỉnh ngăn xếp Địa chỉ của đỉnh ngăn xếp được lưu trong một thanh ghi đặc biệt gọi là con trỏ ngăn xếp SP (Stack Pointer) Theo cấu trúc ngăn xếp, các lệnh phổ biến là PUSH để đẩy một giá trị vào ngăn xếp và POP để lấy giá trị từ ngăn xếp ra Những lệnh này hoạt động theo nguyên tắc LIFO (Last In, First Out), cập nhật đỉnh ngăn xếp và con trỏ SP mỗi khi dữ liệu được ghi thêm hoặc loại bỏ.

M (SP) := Ri (Ri là thanh ghi cần viết vào ngăn xếp)

Ri := M(SP) (Ri là thanh ghi, nhận từ lấy ra khỏi ngăn xếp)

Trong các bộ xử lý RISC, việc ghi vào ngăn xếp và lấy ra khỏi ngăn xếp được thực hiện bằng các lệnh bình thường thay vì các lệnh đặc biệt dành riêng cho ngăn xếp Ví dụ, thanh ghi R30 đóng vai trò là con trỏ ngăn xếp (SP) và việc ghi dữ liệu vào ngăn xếp cũng như rút dữ liệu ra được thực hiện thông qua các lệnh dựa trên địa chỉ và cập nhật con trỏ SP theo hướng vận hành của kiến trúc Các thao tác push và pop cho ngăn xếp trong RISC được thực thi bằng cách ghi tại vị trí do SP chỉ định và sau mỗi thao tác con trỏ ngăn xếp được cập nhật (tăng hoặc giảm) đúng quy tắc của ngăn xếp, đảm bảo tính nhất quán và tối ưu hiệu suất Nhờ đó, dù ghi vào hay lấy ra khỏi ngăn xếp, chu trình điều khiển vẫn được đơn giản hóa, giúp tăng tốc độ xử lý và giảm chi phí điều khiển bộ đệm ngăn xếp.

ADDI R30, R30, 4 ; tăng con trỏ ngăn xếp lên 4 vì từ dài 32 bit STORE Ri, (R30) ; Viết Ri vào đỉnh ngăn xếp

Việc lấy ra khỏi ngăn xếp đƣợc thực hiện bằng các lệnh :

LOAD Ri, (R30) ; lấy số liệu ở đỉnh ngăn xếp và nạp vào Ri SUBI R30, R30,4 ; giảm con trỏ ngăn xếp bớt 4

Thủ tục có thể được gọi từ bất kỳ nơi nào trong chương trình bằng lệnh CALL Để khi thủ tục kết thúc chương trình tiếp tục thi hành ở đúng vị trí sau lệnh CALL, ta cần lưu lại địa chỉ trả về — chính là địa chỉ của lệnh sau lệnh CALL Khi kết thúc thi hành thủ tục, lệnh RETURN nạp địa chỉ trả về vào PC (Program Counter), cho phép chương trình tiếp tục thực thi từ đúng điểm đã dừng.

Trong các kiến trúc CISC như VAX 11, 80x86 và 680x0, địa chỉ trở về được lưu ở ngăn xếp Trong các kiến trúc RISC, một thanh ghi đặc biệt—thường là thanh ghi R31—được dùng để lưu giữ địa chỉ trở về.

Lệnh gọi thủ tục là một lệnh loại JMPL Ri, lệnh này làm các tác vụ: R31 := PC ; để địa chỉ trở về trong R31

PC := Ri ; nhảy tới địa chỉ của thủ tục nằm trong thanh ghi Ri

Lệnh trở về khi chấm dứt thủ tục là JMP R31, vì thanh ghi R31 chứa địa chỉ trở về

BỘ XỬ LÝ

Đườ ng d ẫ n d ữ li ệ u

Mục tiêu: Mô tả được nhiệm vụ và cách tổ chức đường đi của dữ liệu trong bộ xử lý

2.1 Các thành phần đường dẫn dữ liệu

Phần đường dẫn dữ liệu gồm các thành phần chính như Đơn vị số học và lôgic (ALU: Arithmetic and Logic Unit), các mạch dịch, các thanh ghi và các đường nối kết các bộ phận trên ALU đảm nhận các phép toán số học và lôgic; các mạch dịch điều phối tín hiệu và dữ liệu giữa ALU, thanh ghi và các thành phần khác Các thanh ghi lưu trữ dữ liệu và kết quả xử lý cho các chu kỳ xử lý tiếp theo, trong khi các đường nối (bus) đảm bảo truyền tải dữ liệu và tín hiệu điều khiển giữa các bộ phận, giúp đường dẫn dữ liệu hoạt động trơn tru và hiệu quả.

Phần này trình bày hầu hết các trạng thái của bộ xử lý Ngoài các thanh ghi tổng quát, phần đường dẫn dữ liệu còn chứa các thành phần thiết yếu như thanh ghi đếm chương trình PC (Program Counter), Đơn vị điều khiển CU và Đơn vị số học và logic ALU Những thành phần này phối hợp với nhau để điều phối và thực thi các lệnh, làm nên hoạt động của CPU và hệ thống máy tính.

Tập thanh ghi (RF) Đơn vị ghép nối bus (BIU)

Bus địa Bus điều chỉ khiển

Key components include a Counter, the Status Register (SR), a Temporary register (TEMP), Memory Address Registers (MAR), Memory Buffer Register (MBR), and a Multiplexer (MUX) These elements form the endpoints of the CPU–memory data channels and are responsible for scheduling memory access from the CPU through the data paths The system uses source buses S1 and S2 and a destination bus (Dest) to route data and control signals, coordinating how memory access requests travel from the CPU to memory and back.

2.2 Nhiệm vụ của đường dẫn dữ liệu

Phần đường dẫn dữ liệu có nhiệm vụ đọc toán hạng từ các thanh ghi tổng quát, thực hiện các phép toán trên toán hạng đó trong bộ xử lý và trong ALU, rồi lưu kết quả vào các thanh ghi tổng quát Tại các ngã vào và ngã ra, các thanh ghi tổng quát được điều khiển bởi các mạch chốt A, B và C, đảm bảo quá trình chọn lọc và truyền dữ liệu được thực hiện chính xác Thông thường, hệ thống máy tính gồm 32 thanh ghi tổng quát để lưu trữ dữ liệu và kết quả tính toán.

Phần đường đi của dữ liệu chiếm phân nửa diện tích của bộ xử lý nhưng là phần dễ thiết kế và cài đặt trong bộ xử lý

Hình 3.2: Tổ chức của một xử lý điển hình (Các đường không liên tục là các đường điều khiển)

B ộ điề u khi ể n

Mục tiêu: Hiểu nguyên tắc vận hành của bộ điều khiển mạch điện tử

Hiểu nguyên tắc vận hành của bộđiều khiển vi chương trình

 Điều khiển nhận lệnh từ bộ nhớ đƣa vào thanh ghi lệnh

 Tăng nội dung của PC để trỏ sang lệnh kế tiếp

 Giải mã lệnh đã đƣợc nhận để xác định thao tác mà lệnh yêu cầu

 Phát ra các tín hiệu điều khiển thực hiện lệnh

 Nhận các tín hiệu yêu cầu từ bus hệ thống và đáp ứng với các yêu cầu đó.

Bộ điều khiển tạo các tín hiệu điều khiển để di chuyển dữ liệu từ các thanh ghi đến bus hoặc để ghi dữ liệu vào các thanh ghi, đồng thời điều khiển các tác vụ mà các bộ phận chức năng phải thực hiện, như điều khiển ALU và quá trình đọc/ghi vào bộ nhớ trong Bộ điều khiển cũng phát ra các tín hiệu giúp các lệnh được thực thi theo trình tự, đảm bảo chu trình xử lý và tổ chức hoạt động của hệ thống máy tính một cách tuần tự.

3.2 Các phương pháp thiết kế bộđiều khiển a) Bộ điều khiển vi chương trình (Microprogrammed Control Unit)

Hình 3.3: Nguyên tắc vận hành của bộ điều khiển dùng vi chương trình

– Bộ nhớ vi chương trình (ROM) lưu trữ các vi chương trình (microprogram) – Một vi chương trình bao gồm các vi lệnh (microinstruction)

– Mỗi vi lệnh mã hoá cho một vi thao tác (microoperation)

Để hoàn thành một lệnh, hệ thống cần thực hiện một hoặc vài vi chương trình Bộ điều khiển dùng mạch điện tử hoạt động dựa trên khái niệm automata trạng thái hữu hạn (finite state machine): có nhiều hệ thống hoặc thành phần nhưng tại mỗi thời điểm xét tới chỉ ở một trạng thái duy nhất Mục đích của trạng thái là ghi nhớ những thông tin liên quan trong quá trình hoạt động Do chỉ có một số trạng thái hữu hạn nên không thể ghi nhớ toàn bộ lịch sử; vì vậy thiết kế phải lưu giữ những gì quan trọng Ưu điểm của hệ thống như vậy là có thể triển khai với nguồn tài nguyên cố định Ví dụ, automata trạng thái hữu hạn có thể được cài đặt trong phần cứng máy tính dưới dạng mạch điện hoặc dưới dạng chương trình đơn giản, nơi nó có khả năng ra quyết định dựa trên một lượng dữ liệu giới hạn hoặc bằng cách dùng vị trí trong đoạn mã lệnh để đưa ra quyết định.

Hình 3.4: Nguyên tắc vận hành của bộ điều khiển dùng mạch điện tử

Hình 3.4 trình bày nguyên lý hoạt động của một bộ điều khiển bằng mạch điện Các đường điều khiển thuộc phần đường đi dữ liệu đóng vai trò là các nhánh ra từ một hoặc nhiều nguồn tín hiệu, nhằm hình thành và phân phối tín hiệu điều khiển tới các thành phần của hệ thống Nhờ đó bộ điều khiển có thể xử lý thông tin và điều khiển các ngõ ra theo đúng yêu cầu vận hành, tối ưu hóa quá trình điều khiển và đáp ứng nhanh với các tín hiệu đầu vào.

Automate trạng thái hữu hạn là một hệ thống có các ngã vào, trong đó các ngã vào gồm có thanh ghi lệnh chứa các lệnh cần thi hành và thông tin từ bộ đường đi số liệu Dựa trên cấu hình các ngã vào và trạng thái hiện tại, Automate sẽ xác định trạng thái tiếp theo và các đường ra tương ứng với trạng thái hiện tại Automate được cài đặt dưới dạng một hoặc nhiều mạch mảng logic lập trình được (PLA: Programmable Logic Array) hoặc các mạch logic ngẫu nhiên.

Kỹ thuật điều khiển này có đặc điểm đơn giản và hiệu quả khi các lệnh có chiều dài cố định và mang dạng thức rõ ràng Với cấu trúc dễ hiểu, nó cho phép điều khiển nhanh và ổn định trong các hệ thống máy tính, đặc biệt là ở các bộ xử lý RISC Nhờ tính chất cố định của độ dài lệnh, kỹ thuật này tối ưu hóa quá trình giải mã và giảm thiểu phức tạp của mạch điều khiển, từ đó nâng cao hiệu suất xử lý dữ liệu và hiệu quả vận hành của bộ xử lý.

Ti ế n trình th ự c hi ệ n l ệ nh máy

- Mục tiêu:Mô tảtiến trình thi hành lệnh mã máy

Việc thi hành một lệnh mã máy có thể chia thành 5 giai đoạn:

 Đọc lệnh (IF: Instruction Fetch)

 Giải mã lệnh (ID: Instruction Decode)

 Thi hành lệnh (EX: Execute)

 Thâm nhập bộ nhớ trong hoặc nhảy (MEM: Memory access)

 Lưu trữ kết quả (RS: Result Storing)

Mỗi giai đoạn đƣợc thi hành trong một hoặc nhiều chu kỳ xung nhịp

 Thanh ghi PC chứa địa chỉ lệnh tiếp theo

 Địa chỉ chuyển vào thanh ghi MAR

 Địa chỉđƣa lên bus địa chỉ

 Đơn vịđiều khiển yêu cầu đọc bộ nhớ

 Kết quả đƣalên data bus, sao chép vào thanh ghi MBR, đƣa vào thanh ghi IR

Hình 3.5:Sơ đồ mô tả quá trình đọc lệnh

– Lệnh từ thanh ghi lệnh IR đƣợc đƣa đến đơn vị điều khiển

– Đơn vị điều khiển tiến hành giải mã lệnh để xácđịnh thao tác phải thực hiện – Giải mã lệnh xảy ra bên trong CPU

Giai đoạn này thường chỉ được dùng cho các lệnh nạp dữ liệu, lưu dữ liệu và lệnh nhảy

Nhận dữ liệu trực tiếp:

– CPU đƣa địa chỉ của toán hạng ra bus địa chỉ

– CPU phát tín hiệu điều khiển đọc

– Toán hạng đƣợc đọc vào CPU

– Tương tự như nhận lệnh

Nhận dữ liệu gián tiếp:

Hình 3.6: Sơ đồ tả nhận toán hạng gián tiếp

Quá trình nhận dữ liệu gián tiếp:

 CPU đƣa địa chỉ ra bus địa chỉ

 CPU phát tín hiệu điều khiển đọc

 Nội dung ngăn nhớ đƣợc đọc vào CPU, đó chính là địa chỉ của toán hạng

 Địa chỉ này đƣợc CPU phát ra bus địa chỉ để tìm ra toán hạng

 CPU phát tín hiệu điều khiển đọc

 Toán hạng đƣợc đọc vào CPU

– Có nhiều dạng tuỳ thuộc vào lệnh

– Chuyển giữa các thanh ghi

– Thao tác số học/logic

– Chuyển điều khiển (rẽ nhánh)

Rd ← Ngã ra ALU hoặc Rd ← MBR

 CPU đƣa địa chỉra bus địa chỉ

 CPU đƣa dữ liệu cần ghi ra bus dữ liệu

 CPU phát tín hiệu điều khiển ghi

 Dữ liệu trên bus dữ liệu được copy đến vịtrí xác định  Lưu trữ kết quả trong thanh ghi đích

Hình 3.7: Sơ đồ mô tả quá trình lưu kết quả

Kỹ thuật ống dẫn lệnh

Mục tiêu của bài viết là trình bày kỹ thuật xử lý thông tin bằng ống dẫn (pipeline) Đây là một kỹ thuật cho phép các giai đoạn khác nhau của nhiều lệnh được thi hành đồng thời, giúp tối ưu hóa thời gian xử lý và tăng thông lượng hệ thống Trong mô hình pipeline, chuỗi lệnh được phân chia thành các giai đoạn độc lập, mỗi giai đoạn thực hiện một nhiệm vụ cụ thể và chuyển kết quả cho giai đoạn tiếp theo, từ đó các lệnh có thể được thực thi song song và tận dụng tối đa tài nguyên máy tính.

Example: We process instructions at a constant pace, with each instruction taking the same amount of time Suppose each instruction goes through five stages, and each stage takes one clock cycle The stages involved in executing an instruction are: Instruction Fetch (IF), Instruction Decode (ID), Execute (EX), Memory Access (MEM), and Result Storing (RS).

Hình 3.8 cho thấy chỉ trong một chu kỳ xung nhịp, bộ xử lý có thể thực hiện một lệnh (bình thường lệnh này được thực hiện trong 5 chu kỳ).

Chuỗi lệnh Chu kỳ xungnhịp

Lệnh thứ i IF ID EX MEM RS

Lệnh thứ i+1 IF ID EX MEM RS

Lệnh thứ i+2 IF ID EX MEM RS

Lệnh thứ i+3 IF ID EX MEM RS

Lệnh thứ i+4 IF ID EX MEM RS

Hình 3.8: Các giai đoạn khác nhau của nhiều lệnh được thi hành cùng một lúc

So với xử lý tuần tự thông thường, 5 lệnh mất 25 chu kỳ xung nhịp; bằng kỹ thuật ống dẫn, 5 lệnh được thực hiện chỉ trong 9 chu kỳ xung nhịp, cho thấy sự cải thiện đáng kể về hiệu suất nhờ pipeline Kỹ thuật này tối ưu hóa luồng lệnh và giảm thiểu độ trễ, cho phép thực thi song song và tăng tốc độ xử lý tổng thể của hệ thống.

Nhƣ vậy kỹ thuật ống dẫn làm tăng tốc độ thực hiện các lệnh Tuy nhiên kỹ thuật ống dẫn có một số ràng buộc:

Để thi hành mỗi giai đoạn của lệnh, cần có một mạch điện riêng vì các giai đoạn của lệnh được thi hành đồng thời Trong một bộ xử lý không dùng kỹ thuật ống dẫn, ta có thể dùng ALU để cập nhật thanh ghi PC, cập nhật địa chỉ của toán hạng bộ nhớ và địa chỉ ô nhớ mà chương trình cần nhảy tới, đồng thời thực hiện các phép tính trên các toán hạng Các phép tính này có thể diễn ra ở nhiều giai đoạn khác nhau, vì vậy ALU và các thành phần liên quan được thiết kế để hỗ trợ các thao tác này ngay cả khi không dùng kỹ thuật ống dẫn.

Cần có nhiều thanh ghi khác nhau được dùng cho các tác vụ đọc và ghi dữ liệu Theo hình 3.8, ở một chu kỳ xung nhịp, hệ thống có thể đồng thời thực hiện hai tác vụ đọc (ID và MEM) và một tác vụ ghi (RS).

Trong một hệ thống máy sử dụng kỹ thuật ống dẫn (pipeline), kết quả của một tác vụ ở giai đoạn trước có thể trở thành toán hạng nguồn cho tác vụ ở giai đoạn sau Đây tạo ra các phụ thuộc dữ liệu giữa các tác vụ và bắt buộc quản lý luồng thực thi một cách chi tiết để tối ưu hiệu suất xử lý Vì vậy, hệ thống sẽ gặp thêm nhiều khó khăn liên quan đến đồng bộ hóa, xếp lịch tác vụ và xử lý tín hiệu điều khiển, những thách thức này sẽ được đề cập ở phần tiếp theo.

- Cần phải giải mã các lệnh một cách đơn giản để có thể giải mã và đọc các toán hạng trong một chu kỳ duy nhất của xung nhịp.

Để thi hành các lệnh số học dài và có độ giữ kết quả thấp, cần có các bộ làm tính ALU hiệu quả Các ALU tối ưu cho phép xử lý nhanh các lệnh số học phức tạp và hoàn tất trong khoảng thời gian ngắn, thậm chí dưới một chu kỳ xung nhịp Việc nâng cấp ALU và tối ưu hóa kiến trúc của chúng là yếu tố quan trọng để tăng hiệu năng hệ thống máy tính, giảm độ trễ và duy trì khả năng thực thi liên tục với tần số xung nhịp cao.

- Cần phải có nhiều thanh ghi lệnh để lưu giữ lệnh mà chúng ta phải xem xét cho mỗi giai đoạn thi hành lệnh.

- Cuối cùng phải có nhiều thanh ghi bộ đếm chương trình PC để có thể tái tục các lệnh trong trường hợp có ngắt quãng.

K ỹ thu ậ t siêu ố ng d ẫ n l ệ nh

Mục tiêu: trình bày kỹ thuật xử lý thông tin siêu ống dẫn

Máy tính áp dụng kỹ thuật siêu ống dẫn bậc n bằng cách phân chia các giai đoạn của kỹ thuật ống dẫn đơn giản thành n giai đoạn con, mỗi giai đoạn thực hiện trong thời gian Tc/n Độ hữu hiệu của kỹ thuật này tương ứng với thi hành n lệnh trong mỗi chu kỳ Tc Hình 3.9 trình bày ví dụ về siêu ống dẫn bậc 2 và so sánh với siêu ống dẫn đơn giản Ta có thể thấy trong một chu kỳ Tc, máy dùng kỹ thuật siêu ống dẫn thực hiện 2 lệnh thay vì làm 1 lệnh.

Trong máy tính sử dụng kỹ thuật ống dẫn bình thường, lệnh được thực thi theo một chu kỳ nhất định Với máy tính siêu ống dẫn, thời gian thực thi một lệnh tương đương với thời gian thực thi một lệnh trong Tc/n Nhược điểm của siêu ống dẫn là thời gian thực hiện một giai đoạn con ngắn Tc/n và sự trì hoãn đáng kể khi thi hành các lệnh nhảy Ví dụ ở Hình 3.9 cho thấy nếu lệnh thứ i là một lệnh nhảy tương đối, lệnh này được giải mã ở giai đoạn ID, địa chỉ nhảy được tính ở giai đoạn EX, lệnh nhảy tới là lệnh thứ i+4, dẫn tới trễ 3 lệnh so với kỹ thuật ống dẫn bình thường.

Hình 3.9: Siêu ống dẫn bậc 2 so với siêu ống dẫn đơn giản.

Trong khoảng thời gian Tc, máy có siêu ống dẫn làm 2 lệnh thay vì 1 lệnh như trong máy có kỹ thuật ống dẫn đơn giản.

Các chướ ng ng ạ i c ủ a ố ng d ẫ n l ệ nh

Mục tiêu: biết được các khó khăn khi sử dụng kĩ thuật ống dẫn và cách khắc phục

Trong máy tính dùng kỹ thuật ống dẫn để thi hành lệnh, quá trình thực thi có thể gặp nhiều trường hợp khiến pipeline không thể hoạt động thông suốt Các nguyên nhân chủ yếu gồm thiếu các mạch chức năng cần thiết cho các giai đoạn của pipeline, một lệnh phụ thuộc vào kết quả của lệnh trước khiến các thao tác bị trì hoãn, và sự xuất hiện của lệnh nhảy làm gián đoạn chu trình thi hành lệnh.

Ta có thể phân biệt 3 loại khó khăn (chướng ngại): khó khăn do cấu trúc, khó khăn do số liệu và khó khăn do điều khiển

7.1 Chướng ngại do cấu trúc

Xung đột cấu trúc trong pipeline xảy ra khi hai lệnh cùng cố gắng sử dụng cùng một nguồn tại cùng thời điểm, chẳng hạn ghi song song vào một thanh ghi, truy cập đồng thời vào một ô nhớ, hoặc cùng yêu cầu một bộ tính toán số học; hoặc khi việc nạp lệnh và đọc dữ liệu từ bộ nhớ diễn ra cùng lúc Để khắc phục xung đột này, ta thường chèn trễ giữa các chu kỳ lệnh hoặc tổ chức lại thứ tự và nội dung các lệnh sao cho nguồn được truy cập theo trình tự và dữ liệu được xử lý đúng lúc.

7.2 Chướng ngại do dữ liệu

Lấy ví dụ trường hợp các lệnh liên tiếp sau:

Hình 3.10 cho thấy R1, kết quả của lệnh 1, chỉ có thể được dùng cho lệnh 2 sau giai đoạn MEM của lệnh 1, nhưng R1 cũng được dùng cho lệnh 2 ở giai đoạn EX của lệnh 1 Chúng ta cũng thấy R1 được dùng cho các lệnh 3 và 4.

IF ID EX MEM RS

2- SUB R4, R1, R5 IF ID EX MEM RS

3- AND R6, R1, R4 IF ID EX MEM RS

4- OR R8, R1, R9 IF ID EX MEM RS

Hình 3.10 trình bày chuỗi lệnh gặp khó khăn do dữ liệu Để khắc phục khó khăn này, một bộ phận phần cứng được dùng để đưa kết quả từ ALU trực tiếp vào một trong các thanh ghi như thể hiện trong Hình 3.11.

Hình 3.11: ALU với bộ phận phần cứng đưa kết quả tính toán trở lại ngã vào

Khi bộ phận phần cứng được nêu ở trên phát hiện việc kết quả của ALU được dùng làm toán hạng cho một phép tính, nó sẽ tác động lên mạch đa hợp để đưa tín hiệu đầu ra của ALU vào đầu vào của chính ALU hoặc vào đầu vào của một đơn vị chức năng khác nếu cần.

Chúng ta có thể giảm xung đột dữ liệu bằng cách sử dụng đường dữ liệu nội bộ đặc biệt và kết hợp với việc tổ chức lại các lệnh trong chương trình để tối ưu hóa luồng dữ liệu Việc này giúp tăng tính nhất quán của dữ liệu và cải thiện hiệu suất thực thi, đồng thời giảm thiểu giao cắt giữa các thao tác dữ liệu và tối ưu hóa trình tự lệnh.

7.3 Chướng ngại do điều khiển

Các lệnh nhảy thay đổi trình tự thi hành lệnh bằng cách điều chỉnh bộ đếm chương trình PC, khiến luồng thực thi có thể không còn diễn ra theo chu kỳ tự động sau mỗi lệnh Chúng được thực hiện dưới hai hình thức chính: nhảy đến một địa chỉ tuyệt đối được lưu trong một thanh ghi, hoặc nhảy đến một địa chỉ được xác định tương đối dựa trên vị trí hiện tại của PC Các lệnh nhảy có thể có điều kiện hoặc không có điều kiện, và yếu tố điều kiện sẽ quyết định xem luồng điều khiển có tiếp tục theo nhịp nhảy hay nhảy tới địa chỉ mới.

Trong trường hợp đơn giản nhất, tác vụ nhảy không thể biết trước giai đoạn giải mã (xem hình 3.4) Như vậy, nếu lệnh nhảy bắt đầu ở chu kỳ C thì lệnh mà chương trình nhảy tới chỉ có thể bắt đầu ở chu kỳ C+2 Ngoài ra, phải biết địa chỉ đích cần nhảy đến mà ta có ở cuối giai đoạn giải mã ID Trong lệnh nhảy tương đối, ta phải cộng độ dời chứa trong thanh ghi lệnh IR vào thanh ghi PC Việc tính địa chỉ này chỉ được thực hiện ở giai đoạn ID với điều kiện phải có một mạch công việc riêng biệt.

Vậy trong trường hợp lệnh nhảy không điều kiện, lệnh mà chương trình nhảy đến bắt đầu thực hiện ở chu kỳ C+2 nếu lệnh nhảy bắt đầu ở chu kỳ C

Trong các lệnh nhảy có điều kiện, điều kiện nhảy phải được tính toán trước Thông thường các kiến trúc RISC đặt kết quả của phép so sánh vào thanh ghi trạng thái hoặc vào một thanh ghi tổng quát Trong cả hai trường hợp, việc đọc điều kiện tương đương với việc đọc thanh ghi Đọc thanh ghi có thể được thực hiện trong nửa chu kỳ cuối của giai đoạn ID.

Trong các lệnh nhảy có điều kiện, một trường hợp khó khăn là khi điều kiện được xác định bằng việc so sánh hai thanh ghi và lệnh nhảy chỉ thực hiện khi kết quả so sánh đúng Việc tính toán trên các đại lượng logic không thể hoàn tất trong nửa chu kỳ, khiến thời gian thực thi của lệnh nhảy có điều kiện bị kéo dài Do đó, người ta thường tránh các trường hợp này để không làm giảm hiệu quả và hiệu suất của máy tính.

Trong trường hợp đơn giản, người dùng có thể xác định địa chỉ nhảy tới và điều kiện nhảy ở cuối giai đoạn ID Dù quá trình này có thể làm chậm một chu kỳ, vẫn có nhiều cách để giải quyết và tối ưu hóa quy trình Việc chọn đúng địa chỉ nhảy và áp dụng các phương pháp xử lý phù hợp giúp tăng hiệu quả thực thi và giảm thiểu thời gian trễ ở giai đoạn ID.

Phương pháp đầu tiên là đóng băng pipeline trong một chu kỳ Điều này có nghĩa là ngừng thi hành lệnh thứ i+1 khi lệnh thứ i là lệnh nhảy, nhằm đảm bảo đúng trình tự lệnh Ta mất một chu kỳ cho mỗi lần nhảy, dẫn đến giảm hiệu suất do chi phí tạm dừng pipeline ở mỗi nhánh.

Cách thứ hai là thi hành lệnh theo sau lệnh nhảy, nhưng lưu ý rằng hiệu quả của lệnh nhảy bị trễ mất một lệnh; vì vậy lệnh ngay sau lệnh nhảy sẽ được thực thi trước khi chương trình đến được địa chỉ mục tiêu mà lệnh nhảy nhắm tới Chương trình dịch hoặc người lập trình có nhiệm vụ xen vào một lệnh hữu ích sau lệnh nhảy để tối ưu hoá hiệu suất và đảm bảo không bỏ lỡ các thao tác quan trọng.

Trong nhảy có điều kiện, chương trình có thể thực hiện nhảy hoặc tiếp tục với lệnh kế tiếp tùy theo điều kiện cho trước Khi điều kiện đúng, luồng thực thi sẽ nhảy tới nhãn đích; khi điều kiện sai, chương trình tiếp tục với lệnh sau lệnh nhảy Các lệnh hữu ích được đặt ngay sau lệnh nhảy sẽ không làm sai lệch chương trình dù điều kiện nhảy đúng hay sai, giúp duy trì tính nhất quán của luồng điều khiển.

Bộ xử lý RISC SPARC có những lệnh nhảy với huỷ bỏ Các lệnh này cho phép thi hành lệnh sau lệnh nhảy nếu điều kiện nhảy đúng và huỷ bỏ thực hiện lệnh đó nếu điều kiện nhảy sai.

Các lo ạ i ng ắ t

Mục tiêu:Mô tảnhiệm vụ của ngắt, phân biệt được các loại ngắt.

Khái niệm chung về ngắt: Ngắt là cơ chế cho phép CPU tạm dừng chương trình đang thực hiện để chuyển sang thực hiện một chương trình khác, gọi là chương trình con phục vụ ngắt

Phần lớn các nhà sản xuất máy tính, như IBM và Intel, dùng thuật ngữ "interrupt" (ngắt quãng) để ám chỉ sự kiện này Tuy nhiên, một số hãng khác lại dùng từ "exception" (ngoại lệ) để mô tả cùng hiện tượng, cho thấy sự đa dạng trong cách diễn đạt kỹ thuật giữa các nhà sản xuất.

“lỗi”, “bẩy” để chỉ định hiện tƣợng này

Trong hệ thống máy tính, bộ điều khiển của CPU là thành phần khó triển khai nhất, và ngắt quãng là phần khó xử lý nhất trong bộ điều khiển Để nhận biết một ngắt quãng đang thi hành một lệnh, ta phải điều chỉnh chu kỳ xung nhịp một cách chính xác, và sự điều chỉnh này có thể ảnh hưởng đến hiệu suất của máy tính.

Ngắt quãng được phát minh là một cơ chế nhằm nhận biết sai sót trong tính toán số học và để ứng dụng cho các hiện tượng thời gian thực Ngày nay, ngắt quãng đóng vai trò then chốt trong hệ thống máy tính và thiết bị nhúng, cho phép xử lý nhanh các sự kiện bất ngờ, tạm dừng và chuyển đổi giữa các tác vụ ưu tiên, đồng thời cải thiện độ chính xác và hiệu suất của hệ thống Các ứng dụng điển hình của ngắt quãng bao gồm xử lý đầu vào–đầu ra, quản lý thiết bị, đồng bộ hóa thời gian, và đảm bảo đáp ứng thời gian trong các hệ thống thời gian thực như điều khiển robot, hệ thống tự động và truyền thông mạng.

 Ngắt do lỗi khi thực hiện chương trình, ví dụ: tràn số, chia cho 0.

 Ngắt do lỗi phần cứng, ví dụ lỗi bộ nhớ RAM.

 Ngắt do mô-đun vào-ra phát tín hiệu ngắt đến CPU yêu cầu trao đổi dữ liệu.

 Người lập trình muốn dùng dịch vụ của hệ điều hành

 Báo tràn số liệu trong tính toán số học

 Trang bộ nhớ thực sự không có trong bộ nhớ

 Báo vi phạm vùng cấm của bộ nhớ

 Báo dùng một lệnh không có trong tập lệnh

Dù ngắt quãng có thể không xảy ra liên tục, bộ xử lý được thiết kế để lưu giữ trạng thái hiện tại trước khi nhảy vào thực thi phục vụ ngắt, nhằm đảm bảo thông tin và dữ liệu không bị mất Sau khi hoàn tất chương trình phục vụ ngắt, bộ xử lý khôi phục trạng thái ban đầu để tiếp tục công việc đang dở dang, duy trì tính liên tục và hiệu suất của hệ thống Quá trình lưu trữ và khôi phục trạng thái là thành phần cốt lõi của quản lý ngắt, giúp bộ xử lý xử lý ngắt một cách an toàn và ổn định.

8.3 Hoạt động của ngắt Để đơn giản việc thiết kế, một vài bộ xử lý chỉ chấp nhận ngắt sau khi thực hiện xong lệnh đang chạy Khi một ngắt xảy ra,bộ xử lý thi hành các bước sau đây:

1 Thực hiện xong lệnh đang làm

2 Lưu trữ trạng thái hiện tại

3 Nhảy đến chương trình phục vụ ngắt

4 Khi chương trình phục vụ chấm dứt, bộ xử lý khôi phục lại trạng thái cũ của nó và tiếp tục thực hiện chương trình mà nó đang thực hiện khi bị ngắt

Sơ đồ mô tả hoạt động ngắt

Hình 3.12: Sơ đồ mô tả chu trình ngắt

 Nội dung của bộ đếm chương trình PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu

 CPU đưa địa chỉ(thường được lấy từ con trỏngăn xếp SP) ra bus địa chỉ

 CPU phát tín hiệu điều khiển ghi bộ nhớ

 Địa chỉ trở về trên bus dữ liệu đƣợc ghi ra vịtrí xác định (ở ngăn xếp)

 Địa chỉ lệnh đầu tiên của chương trình con điều khiển ngắt được nạp vào PC

1 Các thành phần và nhiệm vụ của đường đi dữ liệu?

2 Thế nào là ngắt quãng? Các giai đoạn thực hiện ngắt quãng của CPU

3 Vẽ hình để mô tả kỹ thuật ống dẫn.

4 Các khó khăn trong kỹ thuật ống dẫn và cách giải quyết khó khăn này.

BỘ NH Ớ

THIẾ T B Ị NH Ớ NGOÀI

CÁC LOẠ I BUS

NGÔN NGỮ ASSEMBLY

Ngày đăng: 29/12/2022, 15:59

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm