You are on page 1of 56

Phần một Giới thiệu

Chương 1 Các khái niệm cơ bản và sự phát triển của máy tính

1.1 Tổ chức và kiến trúc


1.2 Cấu trúc và chức
năng
Cấu trúc

1.3 Máy tính IAS


1.4 Cổng, tế bào nhớ, chip và mô-đun đa chip
Cổng và các tế bào bộ nhớ
Linh kiện bán dẫn
Mô-đun
đa chip vi điện tử

1.5 Sự phát triển của kiến trúc Intel x86


1.6
Hệ thống nhúng Internet of Things
Hệ điều hành nhúng
Bộ xử lý ứng dụng so với Bộ xử lý chuyên dụng
Bộ vi xử lý so với Bộ vi điều khiển
Hệ thống nhúng so với Hệ thống nhúng sâu

1.7 ARM Architecture


ARM EVOLUTION
Bộ hướng dẫn Kiến trúc
ARM Sản phẩm

1.8 Các thuật ngữ chính, câu hỏi đánh giá và vấn đề

Mục tiêu học tập

Sau khi nghiên cứu chương này, bạn sẽ có thể

 Giải thích các chức năng và cấu trúc chung của một compu kỹ thuật số ter.
 Trình bày tổng quan về sự phát triển của công nghệ máy tính từ máy tính kỹ thuật số ban đầu
đến các bộ vi xử lý mới nhất.
 Trình bày tổng quan về sự phát triển của kiến trúc x86.
 Xác định các hệ thống nhúng và liệt kê một số yêu cầu và ràng buộc mà các hệ thống
nhúng khác nhau phải đáp ứng.
1.1 Tổ chức và kiến trúc
Khi mô tả máy tính, người ta thường phân biệt giữa kiến trúc máy tính và tổ chức máy tính. Mặc dù
rất khó để đưa ra các định nghĩa chính xác cho các thuật ngữ này, nhưng vẫn tồn tại sự đồng thuận
về các lĩnh vực chung được đề cập trong mỗi thuật ngữ. Ví dụ, xem [VRAN80], [SIEW82], và
[BELL78a]; một quan điểm thay thế thú vị được trình bày trong [REDD76].

Kiến trúc máy tính đề cập đến các thuộc tính của một hệ thống hiển thị cho một lập trình
viên hoặc, nói cách khác, các thuộc tính đó có tác động trực tiếp đến việc thực thi logic của một
chương trình. Một thuật ngữ thường được sử dụng thay thế cho kiến trúc máy tính là kiến trúc tập
lệnh (ISA). ISA xác định các định dạng lệnh, mã lệnh, thanh ghi, lệnh và bộ nhớ dữ liệu; ảnh
hưởng của các lệnh được thực thi đối với thanh ghi và bộ nhớ; và một thuật toán cho
kiểm soát việc thực hiện lệnh. Tổ chức máy tính đề cập đến các đơn vị hoạt động và
các kết nối của chúng nhận ra các thông số kỹ thuật kiến trúc. Ví dụ về các thuộc tính kiến trúc bao
gồm tập lệnh, số lượng bit được sử dụng để biểu diễn các loại dữ liệu khác nhau (ví dụ: số, ký tự),
cơ chế I/O và kỹ thuật để giải quyết bộ nhớ. Các thuộc tính tổ chức bao gồm các chi tiết phần cứng
minh bạch đối với lập trình viên, chẳng hạn như tín hiệu điều khiển; giao diện giữa máy tính và thiết
bị ngoại vi; và công nghệ bộ nhớ được sử dụng.

Ví dụ, nó là một vấn đề thiết kế kiến trúc cho dù một máy tính sẽ có một lệnh nhân. Đó là một vấn đề
tổ chức cho dù hướng dẫn đó sẽ được thực hiện bởi một đơn vị nhân đặc biệt hay bởi một cơ chế sử
dụng lặp lại đơn vị add của hệ thống. Quyết định của tổ chức có thể dựa trên tần suất sử dụng dự
kiến của hướng dẫn nhân, tốc độ tương đối của hai cách tiếp cận và chi phí và quy mô vật lý của một
đơn vị nhân đặc biệt.

Trong lịch sử, và vẫn còn ngày nay, sự khác biệt giữa kiến trúc và tổ chức là một điều quan trọng.
Nhiều nhà sản xuất máy tính cung cấp một loạt các mô hình máy tính, tất cả đều có cùng kiến trúc
nhưng có sự khác biệt về tổ chức. Do đó, các mô hình khác nhau trong gia đình có giá cả và đặc
điểm hiệu suất khác nhau. Hơn nữa, một kiến trúc cụ thể có thể kéo dài nhiều năm và bao gồm một
số mô hình máy tính khác nhau, tổ chức của nó thay đổi theo công nghệ thay đổi. Một ví dụ nổi bật
của cả hai hiện tượng này là kiến trúc IBM System/370. Kiến trúc này được giới thiệu lần đầu tiên vào
năm 1970 và bao gồm một số mô hình. Khách hàng có yêu cầu khiêm tốn có thể mua một mô hình rẻ
hơn, chậm hơn và nếu nhu cầu tăng lên, sau đó nâng cấp lên một mô hình đắt hơn, nhanh hơn mà
không phải từ bỏ phần mềm đã được phát triển. Trong những năm qua, IBM đã giới thiệu nhiều mô
hình mới với công nghệ cải tiến để thay thế các mô hình cũ hơn, cung cấp cho khách hàng tốc độ cao
hơn, chi phí thấp hơn hoặc cả hai. Các mô hình mới hơn này vẫn giữ nguyên kiến trúc để đầu tư
phần mềm của khách hàng được bảo vệ. Đáng chú ý, kiến trúc System/370, với một vài cải tiến, đã
tồn tại cho đến ngày nay với tư cách là kiến trúc của dòng sản phẩm máy tính lớn của IBM.

Trong một loại máy tính được gọi là máy vi tính, mối quan hệ giữa kiến trúc và tổ chức rất gần gũi.
Những thay đổi trong công nghệ không chỉ ảnh hưởng đến tổ chức mà còn dẫn đến việc giới thiệu
các kiến trúc mạnh mẽ và phức tạp hơn. Nói chung, có ít yêu cầu về khả năng tương thích từ thế hệ
này sang thế hệ khác đối với các máy nhỏ hơn này. Do đó, có sự tương tác nhiều hơn giữa các quyết
định thiết kế tổ chức và kiến trúc. Một ví dụ hấp dẫn về điều này là máy tính tập lệnh rút gọn (RISC),
mà chúng tôi xem xét trong Chương 15.

Cuốn sách này xem xét cả tổ chức máy tính và kiến trúc máy tính. Sự nhấn mạnh có lẽ là nhiều
hơn về phía tổ chức. Tuy nhiên, vì một tổ chức máy tính phải được thiết kế để thực hiện một đặc
điểm kỹ thuật kiến trúc cụ thể, việc xử lý triệt để tổ chức cũng đòi hỏi phải kiểm tra chi tiết về kiến
trúc.
1.2 Cấu trúc và chức năng
Máy tính là một hệ thống phức tạp; máy tính hiện đại chứa hàng triệu thành phần điện tử cơ bản.
Làm thế nào, sau đó, người ta có thể mô tả rõ ràng chúng? Điều quan trọng là nhận ra bản chất
phân cấp của hầu hết các hệ thống phức tạp, bao gồm cả máy tính [SIM096]. Một hệ thống phân cấp
là một tập hợp các hệ thống con liên quan đến nhau; mỗi hệ thống con có thể lần lượt chứa các hệ
thống con cấp thấp hơn, cho đến khi chúng ta đạt đến một số cấp thấp nhất của hệ thống con cơ
bản.

Bản chất phân cấp của các hệ thống phức tạp là điều cần thiết cho cả thiết kế và mô tả của chúng.
Người thiết kế chỉ cần xử lý một cấp độ cụ thể của hệ thống tại một thời điểm. Ở mỗi cấp độ, hệ
thống bao gồm một tập hợp các thành phần và mối tương quan của chúng. Hành vi ở mỗi cấp độ chỉ
phụ thuộc vào đặc tính đơn giản, trừu tượng của hệ thống ở cấp độ thấp hơn tiếp theo. Ở mỗi cấp
độ, nhà thiết kế quan tâm đến cấu trúc và chức năng:

 Cấu trúc: Cách thức mà các thành phần có liên quan với nhau.
 Chức năng: Hoạt động của từng thành phần riêng lẻ như một phần của cấu trúc.
Về mặt mô tả, chúng ta có hai lựa chọn: bắt đầu từ phía dưới và xây dựng một mô tả hoàn chỉnh,
hoặc bắt đầu với góc nhìn từ trên xuống và phân hủy hệ thống thành các phần phụ của nó. Bằng
chứng từ một số lĩnh vực cho thấy cách tiếp cận từ trên xuống là rõ ràng và hiệu quả nhất [WEIN75].

Cách tiếp cận được thực hiện trong cuốn sách này theo quan điểm này. Hệ thống máy tính sẽ được
mô tả từ trên xuống. Chúng tôi bắt đầu với các thành phần chính của máy tính, mô tả cấu trúc và
chức năng của chúng, và tiến tới các lớp thấp hơn liên tiếp của hệ thống phân cấp. Phần còn lại của
phần này cung cấp một cái nhìn tổng quan rất ngắn gọn về kế hoạch tấn công này.

Chức năng

Về bản chất, cả cấu trúc và chức năng của máy tính đều đơn giản. Nói chung, chỉ có bốn chức
năng cơ bản mà một máy tính có thể thực hiện:

 Xử lý dữ liệu: Dữ liệu có thể có nhiều hình thức khác nhau và phạm vi yêu cầu xử lý rất rộng.
Tuy nhiên, chúng ta sẽ thấy rằng chỉ có một vài phương pháp hoặc loại xử lý dữ liệu cơ bản.
 Lưu trữ dữ liệu: Ngay cả khi máy tính đang xử lý dữ liệu một cách nhanh chóng (tức là dữ liệu
đến và được xử lý và kết quả xuất ra ngay lập tức), máy tính phải tạm thời lưu trữ ít nhất những
mẩu dữ liệu đang được xử lý tại bất kỳ thời điểm nào. Do đó, có ít nhất một chức năng lưu trữ dữ
liệu ngắn hạn. Quan trọng không kém, máy tính thực hiện chức năng lưu trữ dữ liệu dài hạn. Các
tệp dữ liệu được lưu trữ trên máy tính để truy xuất và cập nhật tiếp theo.
 Di chuyển dữ liệu: Môi trường hoạt động của máy tính bao gồm các thiết bị đóng vai trò là
nguồn hoặc đích của dữ liệu. Khi dữ liệu được nhận từ hoặc được chuyển đến một thiết bị được
kết nối trực tiếp với máy tính, quá trình này được gọi là đầu vào-đầu ra (I10) và thiết bị được gọi
là thiết bị ngoại vi. Khi dữ liệu được di chuyển qua khoảng cách xa hơn, đến hoặc từ một thiết bị
từ xa, quá trình này được gọi là truyền dữ liệu.
 Điều khiển: Trong máy tính, một đơn vị điều khiển quản lý tài nguyên của máy tính và điều phối
hiệu suất của các bộ phận chức năng của nó để đáp ứng các hướng dẫn.
Cuộc thảo luận trước đó có vẻ khái quát hóa một cách vô lý. Chắc chắn có thể, ngay cả ở cấp cao
nhất của cấu trúc máy tính, để phân biệt một loạt các chức năng, nhưng để trích dẫn [SIEW82]:

Có rất ít định hình cấu trúc máy tính để phù hợp với chức năng được thực hiện. Gốc rễ của
điều này nằm ở bản chất mục đích chung của máy tính, trong đó tất cả các chuyên ngành chức
năng
xảy ra tại thời điểm lập trình và không xảy ra tại thời điểm thiết kế.

Kết cấu

Bây giờ chúng ta nhìn một cách tổng quát vào cấu trúc bên trong của một máy tính.
Chúng tôi bắt đầu với một máy tính truyền thống với một bộ xử lý duy nhất sử dụng một
bộ điều khiển được lập trình vi mô, sau đó kiểm tra một cấu trúc đa lõi điển hình.

MÁY TÍNH SINGLE-PROCESSOR ĐƠN GIẢN

Hình 1.1 cung cấp một cái nhìn phân cấp về cấu trúc bên trong của một máy tính xử lý
đơn truyền thống. Có bốn thành phần cấu trúc chính:

••

Bộ điều
khiển
(-
Logic giải
trình tự

Bộ đăng ký
và giải mã
bộ điều
khiển

Bộ
nhớ điều khiển

Hình 1.1 Máy tính: Cấu trúc cấp cao nhất

 Xử lý trung tâm không sáng (CPU):Điều khiển hoạt động của máy tính và thực hiện
các chức năng xử lý dữ liệu của nó; thường được gọi đơn giản là pFCC.C2:20r.
 Bộ nhớ chính: Lưu trữ dữ liệu.
 110: Di chuyển dữ liệu giữa máy tính và môi trường bên ngoài
 Kết nối hệ thống: Một số cơ chế cung cấp giao tiếp giữa CPU, bộ nhớ chính và 110.
Một ví dụ phổ biến về Kết nối hệ thống là bằng bus hệ thống,
bao gồm một số dây dẫn điện mà tất cả các thành phần khác gắn vào.
Có thể có một hoặc nhiều thành phần trong số mỗi thành phần nêu trên. Theo truyền thống, chỉ có
một bộ xử lý duy nhất. Trong những năm gần đây, ngày càng có nhiều bộ xử lý được sử dụng trong
một máy tính. Một số vấn đề thiết kế liên quan đến nhiều bộ xử lý xuất hiện và được thảo luận khi tiến
hành văn bản; Phần Năm tập trung vào các máy tính như vậy.

Mỗi thành phần này sẽ được kiểm tra chi tiết trong Phần Hai. Tuy nhiên, đối với mục đích của
chúng tôi, điều thú vị nhất và theo một cách nào đó, thành phần phức tạp nhất là CPU. Các thành
phần cấu trúc chính của nó như sau:

 Bộ điều khiển: Điều khiển hoạt động của CPU và do đó điều khiển máy tính.
 Đơn vị số học và logic (ALU): Thực hiện các chức năng xử lý dữ liệu của máy tính.
 Thanh ghi: Cung cấp lưu trữ nội bộ cho CPU.
 Kết nối CPU: Một số cơ chế cung cấp giao tiếp giữa bộ điều khiển, ALU và thanh ghi.
Phần Ba bao gồm các thành phần này, trong đó chúng ta sẽ thấy rằng sự phức tạp được thêm vào
bằng cách sử dụng các kỹ thuật tổ chức song song và đường ống. Cuối cùng, có một số cách tiếp
cận để thực hiện đơn vị kiểm soát; một cách tiếp cận phổ biến là thực hiện lập trình vi mô. Về bản
chất, bộ điều khiển được lập trình vi mô hoạt động bằng cách thực hiện các hướng dẫn vi mô xác
định chức năng của bộ điều khiển. Với cách tiếp cận này, cấu trúc của bộ điều khiển có thể được mô
tả, như trong Hình 1.1. Cấu trúc này được kiểm tra trong Phần Bốn.

CẤU TRÚC MÁY TÍNH ĐA LÕI

Như đã đề cập, các máy tính hiện đại thường có nhiều bộ xử lý. Khi tất cả các bộ xử lý này nằm trên
một chip duy nhất, thuật ngữ máy tính đa lõi được sử dụng và mỗi bộ xử lý (bao gồm một bộ điều
khiển, ALU, thanh ghi và có lẽ là bộ nhớ cache) được gọi là lõi. Để làm rõ thuật ngữ, văn bản này sẽ
sử dụng các định nghĩa sau.

 Bộ xử lý trung tâm (CPU): Là phần của máy tính tìm nạp và thực thi các lệnh. Nó bao gồm ALU,
bộ điều khiển và thanh ghi. Trong một hệ thống có một đơn vị xử lý duy nhất, nó thường được gọi
đơn giản là bộ xử lý.
 Lõi: Một đơn vị xử lý riêng lẻ trên chip xử lý. Lõi có thể có chức năng tương đương với
CPU trên một hệ thống CPU duy nhất. Các đơn vị xử lý chuyên biệt khác, chẳng hạn như đơn
vị được tối ưu hóa cho các hoạt động vectơ và ma trận, cũng được gọi là lõi.
 Bộ xử lý: Một miếng silicon vật lý chứa một hoặc nhiều lõi. Bộ xử lý là thành phần máy tính
diễn giải và thực thi các lệnh. Nếu một bộ xử lý chứa nhiều lõi, nó được gọi là bộ xử lý đa lõi.
Sau khoảng một thập kỷ thảo luận, có sự đồng thuận rộng rãi trong ngành về việc sử dụng này.

Một tính năng nổi bật khác của máy tính hiện đại là sử dụng nhiều lớp bộ nhớ, được gọi là bộ nhớ
cache, giữa bộ xử lý và bộ nhớ chính. Chương 4 dành cho chủ đề bộ nhớ cache. Đối với mục đích
của chúng tôi trong phần này, chúng tôi chỉ đơn giản lưu ý rằng bộ nhớ cache nhỏ hơn và nhanh
hơn bộ nhớ chính và được sử dụng để tăng tốc độ truy cập bộ nhớ, bằng cách đặt dữ liệu bộ nhớ
cache từ bộ nhớ chính, có khả năng được sử dụng trong tương lai gần. Cải thiện hiệu suất lớn hơn
có thể đạt được bằng cách sử dụng nhiều mức bộ nhớ cache, với mức 1 (L1) gần nhất với lõi và các
mức bổ sung (L2, L3, v.v.) dần dần xa lõi hơn. Trong sơ đồ này, mức n nhỏ hơn và nhanh hơn mức
n + 1.

Hình 1.2 là một cái nhìn đơn giản về các thành phần chính của một máy tính đa lõi điển hình.
Hầu hết các máy tính, bao gồm cả máy tính nhúng trong điện thoại thông minh và máy tính bảng,
cộng với máy tính cá nhân, máy tính xách tay và máy trạm, đều được đặt trên bo mạch chủ.
Trước khi mô tả sự sắp xếp này, chúng tôi
cần phải xác định một số thuật ngữ. Bảng mạch in (PCB) là một bảng cứng, phẳng, giữ và
kết nối các chip và các linh kiện điện tử khác. Bo mạch được làm bằng các lớp, thường là từ
hai đến mười, kết nối các thành phần thông qua các con đường đồng được khắc vào bo
mạch. Bảng mạch in chính trong máy tính được gọi là bảng hệ thống hoặc m crthi-ar-ardl,
trong khi các bảng nhỏ hơn cắm vào các khe trong bảng chính được gọi là bảng mở rộng.

BO MẠCH CHỦ
OChip bộ nhớ chính
O
176

Bộ xử lý
Chip I/0

chip

CHIP XỬ LÝ

Lõi Lõi Lõi Lõi

13 bộ nhớ Bộ nhớ cache


cache L3

Lõi Lõi Lõi Lõi

CORE
/
Logic Tải/ lưu /
Đơn vị số
hướng trữ logic /
học
dẫn và logic
LI I-cache (AEU) 1,1 bộ nhớ /
cache dữ liệu /
/
12 1,2 dữ
liệu /
bộ nhớ đệm lệnh cach
e

Hình 1.2 Chế độ xem đơn giản hóa các yếu tố chính của Muldoon, Máy tính

Các yếu tố nổi bật nhất trên bo mạch chủ là các con chip. Chip là một mảnh duy nhất của vật
liệu bán dẫn, thường là silicon, trên đó các mạch điện tử và cổng logic được chế tạo. Sản
phẩm thu được được gọi là vách đá lintapartad..*11ilt.
Bo mạch chủ có khe cắm hoặc ổ cắm cho chip xử lý, thường chứa nhiều lõi riêng lẻ, trong cái
được gọi là bộ xử lý đa lõi. Ngoài ra còn có các khe cắm cho chip bộ nhớ, chip điều khiển I/O
và các thành phần máy tính quan trọng khác. Đối với máy tính để bàn, các khe cắm mở rộng
cho phép
bao gồm nhiều thành phần hơn trên các bảng mở rộng. Do đó, một bo mạch chủ hiện đại chỉ kết nối
một vài thành phần chip riêng lẻ, với mỗi chip chứa từ vài nghìn đến hàng trăm triệu bóng bán dẫn.

Hình 1.2 cho thấy chip xử lý có chứa tám lõi và bộ nhớ cache L3. Không được hiển thị là logic cần
thiết để điều khiển các hoạt động giữa các lõi và bộ nhớ cache và giữa các lõi và mạch bên ngoài
trên bo mạch chủ. Hình này chỉ ra rằng bộ đệm L3 chiếm hai phần riêng biệt của bề mặt chip. Tuy
nhiên, thông thường, tất cả các lõi có quyền truy cập vào toàn bộ bộ đệm L3 thông qua các mạch
điều khiển nói trên. Chip xử lý được hiển thị trong Hình 1.2 không đại diện cho bất kỳ sản phẩm cụ
thể nào, nhưng cung cấp một ý tưởng chung về cách các chip đó được bố trí.

Tiếp theo, chúng ta phóng to cấu trúc của một lõi duy nhất, chiếm một phần của chip xử lý. Nói
chung, các yếu tố chức năng của lõi là:

 Logic hướng dẫn: Điều này bao gồm các nhiệm vụ liên quan đến việc tìm nạp hướng dẫn và
giải mã từng hướng dẫn để xác định thao tác hướng dẫn và vị trí bộ nhớ của bất kỳ toán hạng
nào.
 Bộ số học và logic (ALU): Thực hiện thao tác được chỉ định bởi một lệnh.
 Load/store logic: Quản lý việc truyền dữ liệu đến và đi từ bộ nhớ chính thông qua bộ nhớ cache.
Lõi cũng chứa bộ nhớ cache Ll, được phân tách giữa bộ nhớ cache lệnh (I-cache) được sử dụng để
chuyển các lệnh đến và từ bộ nhớ chính và bộ nhớ cache dữ liệu Ll, để chuyển các toán hạng và
kết quả. Thông thường, các chip xử lý ngày nay cũng bao gồm bộ nhớ cache L2 như một phần của
lõi. Trong nhiều trường hợp, bộ nhớ cache này cũng được phân chia giữa bộ nhớ cache lệnh và bộ
nhớ cache dữ liệu, mặc dù một bộ nhớ cache L2 đơn lẻ kết hợp cũng được sử dụng.

Hãy nhớ rằng cách trình bày này về bố cục của lõi chỉ nhằm đưa ra một ý tưởng chung về cấu trúc lõi
bên trong. Trong một sản phẩm nhất định, các yếu tố chức năng có thể không được trình bày dưới
dạng ba yếu tố riêng biệt được thể hiện trong Hình 1.2, đặc biệt nếu một số hoặc tất cả các chức
năng này được thực hiện như một phần của bộ điều khiển được lập trình vi mô.

Ví dụ thực hiện sáng chế

Sẽ rất hữu ích khi xem xét một số ví dụ thực tế minh họa cấu trúc phân cấp của máy tính. Hình 1.3 là
ảnh chụp bo mạch chủ cho máy tính được xây dựng xung quanh hai chip xử lý Intel Quad-Core Xeon.
Nhiều yếu tố được đánh dấu trên bức ảnh được thảo luận sau đó trong cuốn sách này. Ở đây, chúng
tôi đề cập đến điều quan trọng nhất, ngoài các ổ cắm bộ xử lý:
Intel® 3420
Chipset
Bộ xử lý 2x Quad-Core Intel® Xeon® Bộ xử lý sáu kênh DDR3-1333 Giao diện Giao diện nối tiếp
bộ nhớ
Tối đa 48GB với Bộ điều khiển bộ nhớ tích hợp ATA/300 (SATA)

2x USB 2.0
bên trong
2x USB 2.0 Bên
ngoài

BIOS đầu ra

video VGA

2x Ethernet Pons
10/100/1000Base
-T

Bộ điều khiển
Đồng hồ Power & Backplane I/OPCI Express® PCI Express® Ethernet
Đầu nối C Đầu nối B Đầu nối A

Hình 1.3 Bo mạch chủ với hai bộ xử lý Intel Quad-Core Xeon


Nguồn: Cheers Platte Rugged Rectonauftt Comoldere

 Khe cắm PCI-Express cho bộ chuyển đổi màn hình cao cấp và cho các thiết bị
ngoại vi bổ sung (7iezt n mô tả PC1e).
 Bộ điều khiển Ethernet và cổng Ethernet cho các kết nối mạng.
 Ổ cắm USB cho các thiết bị ngoại vi.
 Ổ cắm ATA nối tiếp (SATA) để kết nối với bộ nhớ đĩa (20774.1on 7.7 thảo luận về Ethernet,
USB và SATA).
 Giao diện cho chip bộ nhớ chính DDR (tốc độ dữ liệu gấp đôi) (04rann 5.3 thảo luận về
DDR).
 Chipset Intel 3420 là bộ điều khiển I/O cho các hoạt động truy cập bộ nhớ trực tiếp
giữa các thiết bị ngoại vi và bộ nhớ chính (2-4allon 7.0 thảo luận về DDR).
Theo chiến lược từ trên xuống của chúng tôi, như được minh họa trong Ffitur4s 1 và fie2, giờ
đây chúng ta có thể phóng to và xem xét cấu trúc bên trong của chip xử lý, được gọi là bộ xử
lý (PU). Để đa dạng, chúng tôi xem xét một chip IBM thay vì chip xử lý Intel. ilIfirogre 1.4 là bố
cục quy mô của chip xử lý cho máy tính lớn IBM z13 [LASC16]. Con chip này có 3,99 tỷ bóng
bán dẫn. Các nhãn chồng lên nhau Cho biết diện tích bề mặt silicon của chip được phân bổ
như thế nào. Chúng ta thấy rằng chip này có tám lõi, hoặc bộ xử lý. Ngoài ra, một phần đáng
kể của chip được dành cho bộ đệm L3, được chia sẻ bởi tất cả tám lõi. Logic điều khiển L3
điều khiển lưu lượng giữa bộ nhớ cache L3 và các lõi và giữa bộ nhớ cache L3 và môi trường
bên ngoài. Ngoài ra, có logic điều khiển lưu trữ (SC) giữa các lõi và bộ nhớ cache L3. Chức
năng điều khiển bộ nhớ (MC) điều khiển quyền truy cập vào bộ nhớ bên ngoài chip. Bus I/O
GX điều khiển giao diện với các bộ điều hợp kênh truy cập vào I/O.
:I3rves MCU MeRbvrs•

Lõi° "
44 1,
CIO

::: ::1„3C:

C
Q
..... Ciirel
w

e
l
C
"
.
. KT
) : :C:007
XL
V
.• • • ... • . • .• • • " • • •

 PB GX:bliiiiG X lar Rail FRIA: •


131:
Hình 1.4 IBM:13 Sơ đồ Chip Bộ xử lý (PU)

Đi xuống một cấp độ sâu hơn, chúng tôi kiểm tra cấu trúc bên trong của một lõi đơn, như thể
hiện trong bức ảnh của Rour:o 'La Lõi thực hiện kiến trúc tập lệnh z13, được gọi là
z/Architecture_ Hãy nhớ rằng Đây là một phần của diện tích bề mặt silicon tạo thành một chip
xử lý đơn. Các tiểu khu vực chính trong khu vực cốt lõi này như sau:

IF
B.
VFD.

I CM lSU
X P
U C
ICNI ICNI

F110555 1,5 11551 513 Ce:đến LayOUi:

 !SU (đơn vị trình tự lệnh): Xác định trình tự mà các lệnh được thực hiện trong những gì
được gọi là kiến trúc siêu sao. Nó cho phép đường ống không theo thứ tự (000). Nó theo
dõi tên đăng ký, 000 phụ thuộc lệnh và xử lý điều phối tài nguyên Hướng dẫn. Các khái
niệm này được thảo luận trong ChoF1tr: '1113.
 IFB (Tìm nạp và phân nhánh lệnh) và ICM (Bộ nhớ cache và hợp nhất lệnh) Hai đơn vị con
này chứa bộ nhớ cache lệnh 128-kel, logic dự đoán nhánh, điều khiển tìm nạp lệnh và bộ
đệm. Kích thước tương đối của các tiểu đơn vị này là kết quả của thiết kế dự đoán nhánh
phức tạp.
kB = kilobyte = 1048 byte. Tiền tố số được giải thích trong một tài liệu dưới tab "Other Useful"
tại ComputerScienceStudent.com.

 IDU (đơn vị giải mã lệnh): IDU được cung cấp từ bộ đệm IFU và chịu trách nhiệm phân tích
cú pháp và giải mã tất cả các mã hoạt động z/Architecture.
 LSU (đơn vị lưu trữ tải): LSU chứa bộ nhớ cache dữ liệu Ll 96 kB và quản lý lưu lượng dữ
liệu giữa bộ nhớ cache dữ liệu L2 và các đơn vị thực thi chức năng. Nó chịu trách nhiệm xử
lý tất cả các loại truy cập toán hạng của tất cả các độ dài, chế độ và định dạng như được xác
định trong z/Kiến trúc.
 XU (đơn vị dịch): Đơn vị này dịch các địa chỉ logic từ các lệnh thành các địa chỉ vật lý trong
bộ nhớ chính. XU cũng chứa một bộ đệm lookaside dịch (TLB) được sử dụng để tăng tốc độ
truy cập bộ nhớ. TLB được thảo luận trong Chương 8.
 PC (đơn vị phổ biến lõi): Được sử dụng để đo đạc và thu thập lỗi.
 FXU (đơn vị điểm cố định): FXU thực hiện các phép toán số học điểm cố định.
 VFU (vector và đơn vị dấu phẩy động): Phần đơn vị dấu phẩy động nhị phân xử lý tất cả các
phép toán dấu phẩy động nhị phân và thập lục phân, cũng như các phép toán nhân dấu phẩy
động cố định. Phần đơn vị dấu phẩy động thập phân xử lý cả phép toán dấu phẩy động và dấu
phẩy động trên các số được lưu dưới dạng chữ số thập phân. Phần thực thi vectơ xử lý các phép
toán vectơ.
 RU (đơn vị khôi phục): RU giữ một bản sao của trạng thái hoàn chỉnh của hệ thống bao
gồm tất cả các thanh ghi, thu thập tín hiệu lỗi phần cứng và quản lý các hành động khôi phục
phần cứng.
 COP (bộ đồng xử lý chuyên dụng): COP chịu trách nhiệm về các chức năng nén và mã hóa
dữ liệu cho mỗi lõi.
 L2D: Bộ nhớ đệm dữ liệu L2 2-MB cho tất cả lưu lượng bộ nhớ ngoài hướng dẫn.
 L2I: Bộ nhớ cache lệnh L2 2-MB.
Khi chúng ta tiến bộ thông qua cuốn sách, các khái niệm được giới thiệu trong phần này sẽ trở nên
rõ ràng hơn.
1.3 Máy tính IAS
Thế hệ máy tính đầu tiên sử dụng các ống chân không cho các yếu tố logic kỹ thuật số
và bộ nhớ. Một số nghiên cứu và sau đó là các máy tính thương mại được chế tạo bằng
cách sử dụng các ống chân không. Cho chúng ta
mục đích, nó sẽ được hướng dẫn để kiểm tra có lẽ là máy tính thế hệ đầu tiên nổi tiếng nhất,
được gọi là máy tính IAS. Ví dụ này minh họa nhiều khái niệm cơ bản được tìm thấy trong tất
cả các hệ thống máy tính.

Một phương pháp thiết kế cơ bản lần đầu tiên được triển khai trong máy tính IAS được gọi là
khái niệm chương trình được lưu trữ. Ý tưởng này thường được quy cho nhà toán học John von
Neumann. Alan Turing đã phát triển ý tưởng cùng một lúc. Ấn bản đầu tiên của ý tưởng này là
trong một đề xuất năm 1945 của von Neumann cho một máy tính mới, EDVAC (Electronic
Discrete Variable Computer).2

2 Báo cáo năm 1945 về EDVAC có tại box.com/C0A11e.

Năm 1946, von Neumann và các đồng nghiệp của ông bắt đầu thiết kế một máy tính lưu trữ
chương trình mới, được gọi là máy tính IAS, tại Viện Nghiên cứu Cao cấp Princeton. Máy
tính IAS, mặc dù chưa hoàn thành cho đến năm 1952, là nguyên mẫu của tất cả các máy tính
đa năng tiếp theo.3

3 Một báo cáo năm 1954 [GOLD54] mô tả máy IAS đã triển khai và liệt kê bộ hướng dẫn cuối cùng. Nó
có sẵn tại box.com/C0A11e.
Hình 1.6 cho thấy cấu trúc của máy tính IAS (so sánh với Hình 1.1).
|||UNTRANSLATED_CONTENT_START|||It consists
of|||UNTRANSLATED_CONTENT_END|||
|||UNTRANSLATED_CONTENT_START|||Central

Đơn vị logic số học (CA)


Thiết bị đầu
AC Q vào-đầu ra
(1,0)

Mạch logic số học

MBR

Hướng dẫn và Hướng dẫn


dữ liệu và dữ liệu
process
ing unit
(CPU)||
|UNTR
NI(0) ANSL AC: Thanh ghi bộ tích lũy MQ:
M(1) ATED thanh ghi đa số MBR: thanh ghi
NI(2) _CON bộ nhớ đệm IBR: thanh ghi bộ
M(3) TENT PC IBR
_END|| đệm lệnh PC: bộ đếm chương
M(4) | trình


Nơi
nhận: 1 MAR: địa chỉ bộ nhớ đăng KÝ
IR: INSUCTION đăng KÝ
• N AR IR

gi
Hình 1.6 Cấu trúc IAS
Bộ nhớ
chính
 A =Xin chào trygeraew, nơi lưu trữ cả dữ
(Triệu) liệu
Trong
ờ_ Điều Mạch
khiển • tín điềukhiển
và Hướng dẫn 4
văn bản cuốn sách này, trừ khi có ghi
chú hiệu 4: khác, thuật ngữ Insiniction đề cập đến
M(4092)
Hướng Chương trình đồng Aro! đơn dẫn sử dụng máy trực tiếp
M(4093)
vị (CC)
M(4095) Được bộ xử lý diễn giải và thực thi, Trái
)-
ngược với một câu lệnh Trong một ngôn ngữ cấp cao, chẳng hạn như Ma hoặc C++, trước tiên
tphải được tuân thủ thành một loạt các Hướng dẫn của máy trước khi được thực thi.

 Một đơn vị số học và logic (ALIT, có khả năng hoạt động trên dữ liệu nhị phân
 Một đơn vị điều khiển, giải thích các hướng dẫn trong bộ nhớ và làm cho chúng được thực thi
 thiết bị đầu vào-đầu ra (110) do bộ điều khiển vận hành
Cấu trúc này đã được nêu trong đề xuất trước đó của von Neumann, đáng được trích dẫn một
phần tại
điểm [VONN45]:

2.2 Đầu tiên: Vì thiết bị chủ yếu là một máy tính, nó sẽ phải thực hiện các hoạt động cơ bản của số
học thường xuyên nhất. Đó là phép cộng, phép trừ, phép nhân và phép chia. Do đó, hợp lý là nó
chỉ nên chứa các cơ quan chuyên biệt cho các hoạt động này.

Tuy nhiên, phải quan sát rằng trong khi nguyên tắc này như vậy có lẽ là hợp lý, cách cụ thể mà nó
được thực hiện đòi hỏi phải xem xét kỹ lưỡng. Ở bất kỳ mức độ nào, một phần số học trung tâm
của thiết bị có thể sẽ phải tồn tại và điều này tạo thành phần cụ thể đầu tiên: CA.

2.3 Thứ hai: Việc điều khiển logic thiết bị, nghĩa là sắp xếp trình tự thích hợp các hoạt động của nó,
có thể được thực hiện hiệu quả nhất bởi một cơ quan điều khiển trung tâm. Nếu thiết bị là đàn hồi,
có nghĩa là, gần như tất cả các mục đích có thể, thì phải phân biệt giữa các hướng dẫn cụ thể
được đưa ra cho và xác định một vấn đề cụ thể, và các cơ quan kiểm soát chung thấy rằng các
hướng dẫn này - bất kể chúng là gì - được thực hiện. Cái trước phải được lưu trữ theo một cách
nào đó; cái sau được thể hiện bằng các bộ phận hoạt động nhất định của thiết bị. Bằng cách kiểm
soát trung tâm, chúng tôi chỉ có nghĩa là chức năng thứ hai này và các cơ quan thực hiện nó tạo
thành phần cụ thể thứ hai: CC.

2.4 Thứ ba: Bất kỳ thiết bị nào thực hiện các chuỗi thao tác dài và phức tạp (cụ thể là
các phép tính) đều phải có bộ nhớ đáng kể.

Các hướng dẫn chi phối một vấn đề phức tạp có thể tạo thành tài liệu đáng kể, đặc biệt là nếu mã
là hoàn cảnh (mà nó có trong hầu hết các thỏa thuận). Tài liệu này phải được ghi nhớ.

Ở bất kỳ mức độ nào, tổng bộ nhớ tạo thành phần cụ thể thứ ba của thiết bị: M.

2.6 Ba phần cụ thể CA, CC (cùng với C) và M tương ứng với các tế bào thần kinh liên kết trong hệ
thần kinh của con người. Vẫn còn để thảo luận về các khía cạnh tương đương của cảm giác hoặc
hướng tâm và các tế bào thần kinh vận động hoặc thần kinh hoạt động hiệu quả. Đây là các cơ
quan đầu vào và đầu ra của thiết bị.

Thiết bị phải có khả năng duy trì sự tiếp xúc đầu vào và đầu ra (cảm giác và vận động) với một
số phương tiện cụ thể thuộc loại này. Phương tiện sẽ được gọi là phương tiện ghi bên ngoài
của thiết bị: R.

2.7 Thứ tư: Thiết bị phải có các cơ quan chuyển thông tin từ R vào các bộ phận C và M cụ thể của
nó. Các cơ quan này tạo thành đầu vào của nó, phần cụ thể thứ tư: I. Sẽ thấy rằng tốt nhất là thực
hiện tất cả các chuyển từ R (bởi I) sang M và không bao giờ trực tiếp từ C.
2.8 Thứ năm: Thiết bị phải có các cơ quan chuyển từ phần C và M cụ thể của nó sang R. Các
cơ quan này tạo thành đầu ra của nó, phần cụ thể thứ năm: 0. Nó sẽ được nhìn thấy rằng nó là
một lần nữa tốt nhất để làm cho tất cả
chuyển từ M (bằng 0) sang R, và không bao giờ trực tiếp từ C.

Với những trường hợp ngoại lệ hiếm hoi, tất cả các máy tính ngày nay đều có cùng cấu trúc và
chức năng chung này và do đó được gọi là máy von Neumann. Do đó, đáng để mô tả ngắn gọn về
hoạt động của máy tính IAS [3URK46, GOLD54]. Sau [1-1AYE981, thuật ngữ và ký hiệu của von
Neumann được thay đổi như sau để phù hợp hơn với việc sử dụng modem; các ví dụ đi kèm với
cuộc thảo luận này dựa trên văn bản sau đó.

Bộ nhớ của IAS bao gồm 4.096 vị trí lưu trữ, được gọi là các từ, gồm 40 chữ số nhị phân (bit) mỗi Y.
Cả dữ liệu và hướng dẫn đều được lưu trữ ở đó. Các số được biểu diễn dưới dạng nhị phân và mỗi
lệnh là một mã nhị phân. Flloun3 i,c minh họa các định dạng này. Mỗi số được biểu diễn bằng một
bit dấu và một giá trị 39 bit. Một từ có thể chứa hai lệnh 20 bit, với mỗi lệnh bao gồm mã thao tác 8
bit (opcode) chỉ định thao tác sẽ được thực hiện và địa chỉ 12 bit chỉ định một trong các từ trong bộ
nhớ (được đánh số từ 0 đến 999).

Không có định nghĩa chung về thuật ngữ. Nói chung, một từ là một tập hợp các byte hoặc bit có
thứ tự là
đơn vị thông thường trong đó thông tin có thể được lưu trữ, truyền hoặc vận hành trong một máy
tính nhất định. Thông thường, nếu một bộ xử lý có một tập hợp độ dài cố định, thì độ dài lệnh

||| 3)
UN
TR
AN
SL
AT với độ dài từ.
bằng
ED
_C
O
NT
EN
T_
ST
IL
AR
T||| khoan dấu hiệu
mũi (a) Từ chỉ số
0
I|||
UN
TR
AN
SL lệnh trái (20 bit) lệnh phải (20 bit)
AT
ED
_C
0 8 20 28
O 39
NT
EN
T_
EN
D||
| opcode (8 bit) địa chỉ (▪12 bit) opcode (8 bit) địa chỉ (12 bit)

(b) Từ chỉ dẫn

Flgurn 13 IA'S Eannory Forinnth

Bộ điều khiển vận hành IAS bằng cách tìm nạp Hướng dẫn từ bộ nhớ và thực hiện từng hướng
dẫn một. Chúng tôi giải thích các hoạt động này với tham chiếu đến Hình 1.C. Hình này cho thấy
cả bộ điều khiển và vị trí lưu trữ dây ALU, được gọi là n3gisters, được định nghĩa như sau:

 Bộ nhớ đệm đăng ký {MBR): Chứa một từ được lưu trữ trong bộ nhớ hoặc được gửi đến đơn
vị I/O hoặc được sử dụng để nhận một từ từ bộ nhớ hoặc từ đơn vị I/O
 Đăng ký địa chỉ bộ nhớ (MAR): Chỉ định địa chỉ trong bộ nhớ của từ được ghi từ hoặc đọc vào
MBR.
 thanh ghi lệnh (IR): Chứa Chỉ thị opcode 8 bit đang được thực thi.
 thanh ghi bộ đệm lệnh (IBR): Được sử dụng để giữ tạm thời lệnh bên phải từ một từ trong bộ
nhớ.
 Bộ đếm chương trình (PC): Chứa địa chỉ của cặp lệnh tiếp theo được lấy từ bộ nhớ.
 Bộ tích lũy (AC) và thương số nhân (MO): Được sử dụng để giữ các toán hạng tạm thời và
kết quả hoạt động ALU. Ví dụ: kết quả của phép nhân hai số 40 bit là 80 bit
số; 40 bit quan trọng nhất được lưu trữ trong AC và ít quan trọng nhất trong MQ. IAS hoạt
động bằng cách thực hiện lặp đi lặp lại một chu kỳ hướng dẫn, như thể hiện trong Hình 1.8.
Mỗi chu kỳ hướng dẫn bao gồm hai phân nhóm phụ. Trong chu kỳ nạp, opcode của lệnh tiếp
theo được nạp vào IR và phần địa chỉ được nạp vào MAR. Hướng dẫn này có thể được lấy từ
IBR, hoặc nó có thể được lấy từ bộ nhớ bằng cách nạp một từ vào MBR, và sau đó xuống IBR,
IR, và MAR.

Có Tiếp Kh
theo
hướng ông THÁNG
Không IBR? 3PC
Chu dẫn
yêu cầu
kỳ tìm truy cập
nạp MBR4-
bộ nhớ
M(THÁNG 3)

IR-IBR (0:7) IR -MBR (20:27) IBR-MBR (20:39)


MAR4-IBR MAR4-MBR IRt-MBR (0:7)
(8:19) (28:39) MAR4-MBR
(8:19)

PC 4-PC + 1
Giải mã lệnh trong IR
Chuyển đến Nếu AC > 0 thì AC4-AC + M(X)
AC 4M (X)
I
M(X, 0:19) đi đến M(X,
0:19)
Chu kỳ thực
hiện
MBR- PCTháng 0 MBR-M(MAR)
M(THÁNG 3)
ACMBR AC-AC +
MBR

M(X) = nội dung của vị trí bộ nhớ có địa chỉ là X


(i:j) = bit i đến j
Hình 1.8 Lưu đồ một phần của hoạt động IAS
Tại sao lại là hướng dẫn? Các hoạt động này được điều khiển bởi mạch điện tử và dẫn đến việc sử
dụng các đường dẫn dữ liệu. Để đơn giản hóa các thiết bị điện tử, chỉ có một thanh ghi được sử
dụng để chỉ định địa chỉ trong bộ nhớ để đọc hoặc ghi và chỉ có một thanh ghi được sử dụng cho
nguồn hoặc đích.

Khi opcode nằm trong IR, chu kỳ thực hiện được thực hiện. Mạch điều khiển diễn giải opcode và
thực hiện lệnh bằng cách gửi các tín hiệu điều khiển thích hợp để làm cho dữ liệu được di chuyển
hoặc một thao tác được thực hiện bởi ALU.

Máy tính IAS có tổng cộng 21 hướng dẫn, được liệt kê trong Bảng 1.1. Chúng có thể được nhóm lại
như sau:

Bảng 1.1 Bộ hướng dẫn IAS

Mô hình dạy Opcode Biểu tượng. Mô tả


học Đại diện

Truyền dữ liệu 00001010 TẢI TRỌNG MQ Chuyển nội dung đăng ký MQ sang
AC tích lũy

00001001 TẢI TRỌNG MQ,M(X) Chuyển nội dung của vị trí bộ nhớ X sang
MQ

00100001 LƯU TRỮ M(X) Chuyển nội dung của bộ tích lũy vào vị trí
bộ nhớ X

00000001 TẢI TRỌNG M(X) Chuyển M(X) sang bộ tích lũy

00000010 TẢI TRỌNG —M(X) Chuyển —M(X) sang bộ tích lũy

00000011 TẢI IM(X)I Chuyển giá trị tuyệt đối của M(X)
sang bộ tích lũy

00000100 TẢI —IM(X)I Chuyển —IM(X)I vào bộ tích lũy

Nhánh vô điều 00001101 NHẢY M(X,0:19) Thực hiện lệnh tiếp theo từ nửa bên trái của
kiện M(X)
00001110 NHẢY M(X,20:39) Thực hiện lệnh tiếp theo từ nửa bên phải của
M(X)
NHẢY+M(X,0: 19)
Nhánh có điều 00001111 Nếu số trong bộ tích lũy là số không âm,
kiện hãy thực hiện lệnh tiếp theo từ nửa bên trái
NHẢY +M (X, 20 : 39) của M(X)
00010000 Nếu số trong bộ tích lũy là số không âm,
hãy lấy lệnh tiếp theo từ nửa bên phải của
M(X)
Số Học 00000101 THÊM M(X) Thêm M(X) vào AC; đưa kết quả vào AC

THÊM IM(X)I Thêm IM(X)I vào AC; đưa kết quả vào AC
1_00000111
00000110 SUB M(X) Trừ M(X) khỏi AC; đưa kết quả vào AC

00001000 IM PHỤ (X)I Trừ IM(X)I khỏi AC; đặt phần còn lại vào AC

00001011 Mul M(X) Nhân M(X) với MQ; đặt các bit có ý nghĩa
nhất của kết quả vào AC, đặt các bit có ý
nghĩa nhỏ nhất vào MQ
00001100 DIV M(X) Chia AC cho M(X); đặt thương số trong
MQ và phần còn lại trong AC

00010100 LSH Nhân bộ tích lũy với 2; nghĩa là dịch


chuyển vị trí một bit sang trái

00010101 RSH Chia bộ tích lũy cho 2; nghĩa là, dịch


chuyển đúng một vị trí

00010010 STOR M(X,8:19) Thay thế trường địa chỉ bên trái tại
Sửa đổi địa M(X) bằng 12 bit AC ngoài cùng bên
chỉ phải
00010011 STOR M(X,28:39) Thay thế trường địa chỉ bên phải tại
M(X) bằng 12 bit AC ngoài cùng bên
phải

 Truyền dữ liệu: Di chuyển dữ liệu giữa bộ nhớ và thanh ghi ALU hoặc giữa hai thanh ghi ALU.
 Nhánh vô điều kiện: Thông thường, bộ điều khiển thực hiện các lệnh theo trình tự từ bộ nhớ.
Trình tự này có thể được thay đổi bằng một lệnh nhánh, tạo điều kiện cho các hoạt động lặp đi lặp
lại.
 Nhánh có điều kiện: Nhánh có thể được thực hiện phụ thuộc vào một điều kiện, do đó cho
phép các điểm quyết định.
 Số học: Các hoạt động được thực hiện bởi ALU.
 Sửa đổi địa chỉ: Cho phép các địa chỉ được tính toán trong ALU và sau đó được chèn vào các chỉ
lệnh được lưu trong bộ nhớ. Điều này cho phép một chương trình giải quyết vấn đề một cách linh
hoạt.
Bảng 1.1 trình bày các hướng dẫn (không bao gồm hướng dẫn I/O) ở dạng biểu tượng, dễ đọc. Ở
dạng nhị phân, mỗi lệnh phải phù hợp với định dạng của Hình 1.7b. Phần opcode (8 bit đầu tiên) chỉ
định lệnh nào trong số 21 lệnh sẽ được thực thi. Phần địa chỉ (12 bit còn lại) chỉ định vị trí bộ nhớ nào
trong số 4.096 vị trí bộ nhớ sẽ tham gia vào việc thực hiện lệnh.
Hình 1.8 cho thấy một số ví dụ về việc thực hiện lệnh của đơn vị điều khiển. Lưu ý rằng mỗi
thao tác yêu cầu một số bước, một số trong đó khá phức tạp. Thao tác nhân đòi hỏi 39 thao tác
con, mỗi thao tác cho một vị trí bit ngoại trừ vị trí của bit dấu hiệu.
1.4 Cổng, tế bào nhớ, chip và mô-đun đa chip,
Cổng và các tế bào bộ nhớ

Các yếu tố cơ bản của một máy tính kỹ thuật số, như chúng ta đã biết, phải thực hiện các
chức năng lưu trữ, di chuyển, xử lý và điều khiển dữ liệu. Chỉ cần hai loại thành phần cơ
bản (Fiinum
.1: cổng và ô nhớ. Nano,là một thiết bị thực hiện một Boolean đơn giản hoặc chức năng logic.
Ví dụ, cổng AND với các đầu vào A và B và đầu ra C thực hiện biểu thức nếu A VÀ B LÀ ĐÚNG
THÌ C LÀ ĐÚNG. Các thiết bị như vậy được gọi là cổng vì chúng kiểm soát luồng dữ liệu theo
cách tương tự như cổng kênh kiểm soát dòng chảy của nước. Momuri ccr1111 là một thiết bị
có thể lưu trữ một bit dữ liệu; nghĩa là, thiết bị có thể ở một trong hai trạng thái ổn định bất cứ
lúc nào. Bằng cách kết nối một số lượng lớn các thiết bị cơ bản này, chúng ta có thể xây dựng
một máy tính. Chúng ta có thể liên hệ điều này với bốn chức năng cơ bản của chúng ta như
sau:

 Lưu trữ dữ liệu: Được cung cấp bởi các ô nhớ.


 Xử lý dữ liệu: Được cung cấp bởi các cổng.
 Di chuyển dữ liệu: Các đường dẫn giữa các thành phần được sử dụng để di chuyển dữ
liệu từ bộ nhớ sang bộ nhớ và từ bộ nhớ qua các cổng sang bộ nhớ.
 Điều khiển: Các đường dẫn giữa các thành phần có thể mang tín hiệu điều khiển. Ví dụ:
một cổng sẽ có một hoặc hai đầu vào dữ liệu cộng với đầu vào tín hiệu điều khiển kích
hoạt cổng. Khi tín hiệu điều khiển bật, cổng thực hiện chức năng của nó trên các đầu vào
dữ liệu và tạo ra đầu ra dữ liệu. Ngược lại, khi tín hiệu điều khiển TẮT, đường đầu ra là null,
chẳng hạn như được tạo ra bởi trạng thái trở kháng cao. Tương tự, tế bào bộ nhớ sẽ lưu
trữ bit trên đầu vào của nó khi tín hiệu điều khiển GHI là ON và sẽ đặt bit trong tế bào trên
đầu ra của nó khi tín hiệu điều khiển ĐỌC là ON.
Do đó, một máy tính bao gồm các cổng, các tế bào bộ nhớ và các kết nối giữa các yếu tố này.
Các cổng và các tế bào bộ nhớ, lần lượt, được chế tạo từ các thành phần điện tử đơn giản,
chẳng hạn như bóng bán dẫn và tụ điện.
Đầu Hàm Đầu ra
vào logic Tế bào
Boolean

Rtad
Viết______________
Kích hoạt
tín hiệu
lưu trữ
nhị
phân
_ ).• Đầu vào đầu ra

(a) Cổng (b) Tế bào nhớ


Hình 1.9 Các yếu tố cơ bản của máy tính

Linh kiện bán dẫn

Khối xây dựng cơ bản của các mạch kỹ thuật số được sử dụng để xây dựng bộ xử lý, bộ nhớ
và các thiết bị logic kỹ thuật số khác là bóng bán dẫn. Phần hoạt động của bóng bán dẫn
được làm bằng silicon hoặc một số vật liệu bán dẫn khác có thể thay đổi trạng thái điện của
nó khi xung. Ở trạng thái bình thường, vật liệu có thể không dẫn điện hoặc dẫn điện, cản trở
hoặc cho phép dòng điện chạy qua. Khi điện áp được áp dụng cho cổng, bóng bán dẫn thay
đổi trạng thái của nó.
Một bóng bán dẫn độc lập, khép kín được gọi là một thành phần rời rạc. Trong suốt những
năm 1950 và đầu những năm 1960, thiết bị điện tử bao gồm phần lớn các thành phần rời rạc -
transistor, điện trở, tụ điện, v.v. Các bộ phận rời rạc được sản xuất riêng biệt, được đóng gói
trong các thùng chứa riêng của chúng, và được hàn hoặc nối dây với nhau trên các bảng
mạch giống như Masonite, sau đó được lắp đặt trong máy tính, máy hiện sóng và các thiết bị
điện tử khác. Bất cứ khi nào một thiết bị điện tử cần một bóng bán dẫn, một ống kim loại có
chứa một miếng silicon có kích thước bằng đầu kim phải được hàn vào bảng mạch. Toàn bộ
quá trình sản xuất, từ bóng bán dẫn đến bảng mạch, đều tốn kém và cồng kềnh.

Những sự thật này của cuộc sống đã bắt đầu tạo ra những vấn đề trong ngành công
nghiệp máy tính. Các máy tính thế hệ thứ hai đầu tiên chứa khoảng 10.000 bóng bán
dẫn. Con số này đã tăng lên hàng trăm ngàn, khiến việc sản xuất các máy móc mới
hơn, mạnh mẽ hơn ngày càng khó khăn.

Chip vi điện tử

Vi điện tử có nghĩa đen là "thiết bị điện tử nhỏ". Kể từ khi bắt đầu ngành công nghiệp điện tử
kỹ thuật số và công nghiệp máy tính, đã có một xu hướng nhất quán về việc giảm kích thước
của các mạch điện tử kỹ thuật số. Trước khi xem xét ý nghĩa và lợi ích của xu hướng này,
chúng ta cần nói điều gì đó về bản chất của thiết bị điện tử kỹ thuật số. Một cuộc thảo luận chi
tiết hơn được tìm thấy trong Chap t3..9- 12.

Mạch tích hợp khai thác thực tế là các thành phần như bóng bán dẫn, điện trở và dây dẫn có
thể được chế tạo từ chất bán dẫn như silic. Nó chỉ đơn thuần là một phần mở rộng của nghệ
thuật trạng thái rắn để chế tạo toàn bộ mạch trong một miếng silicon nhỏ thay vì lắp ráp các
thành phần rời rạc được làm từ các miếng silicon riêng biệt vào cùng một mạch. Nhiều bóng

bánh
quế
kem

hỏn
g

Cate
.

bán dẫn có thể được sản xuất cùng một lúc trên một wafer silicon duy nhất. Quan trọng
không kém, các bóng bán dẫn này có thể được liên kết với quá trình kim loại hóa để tạo thành
các mạch.

Phỉnh đóng gói

Hình 1.10 Mối quan hệ giữa wafer, chip và cổng


Hình 1.10 mô tả các khái niệm chính trong mạch tích hợp. Một miếng silicon mỏng được chia
thành
ma trận các khu vực nhỏ, mỗi khu vực rộng vài milimet vuông. Mô hình mạch giống hệt nhau
được chế tạo ở từng khu vực và wafer được chia thành các chip. Mỗi chip bao gồm nhiều
cổng và/hoặc ô bộ nhớ cộng với một số điểm đính kèm đầu vào và đầu ra. Chip này sau đó
được đóng gói trong vỏ để bảo vệ nó và cung cấp các chân để gắn vào các thiết bị bên ngoài
chip. Một số các gói này sau đó có thể được kết nối với nhau trên một bảng mạch in để tạo ra
các mạch lamer và phức tạp hơn. Hình 1.11a cho biết bộ xử lý đóng gói hoặc chip bộ nhớ
trông như thế nào và Filimm 1.1 1 ta cho thấy chip đóng gói có dây trên bo mạch chủ.

(a) Cận cảnh chip đóng gói (b) Chip trên bo mạch
chủ Hình 1.11 Bộ xử lý hoặc Chip bộ nhớ trên bo mạch chủ
PG trivia' diandottahStarakie
taagaseSludiralook

Ban đầu, chỉ có một vài cổng hoặc tế bào nhớ có thể được sản xuất và đóng gói cùng nhau
một cách đáng tin cậy. Các mạch tích hợp ban đầu này được gọi là tích hợp quy mô nhỏ (551).
Thời gian trôi qua, bạn có thể đóng gói ngày càng nhiều thành phần trên cùng một con chip.
Sự gia tăng mật độ này được minh họa trong Hình 1:112.; nó là một trong những xu hướng
công nghệ đáng chú ý nhất từng được ghi nhận:- Con số này phản ánh định luật Moore nổi
tiếng, được đề xuất bởi Gordon Moore, đồng sáng lập Intel, Năm 1965 [MOOR65]. Moore quan
sát thấy rằng số lượng bóng bán dẫn có thể được đặt trên một con chip đã tăng gấp đôi mỗi
năm và dự đoán chính xác rằng tốc độ này sẽ tiếp tục trong tương lai gần. Trước sự ngạc
nhiên của nhiều người, bao gồm cả Moore, tốc độ tiếp tục năm này qua năm khác và thập kỷ
này qua thập kỷ khác. Tốc độ giảm xuống gấp đôi cứ sau 18 tháng vào những năm 1970,
nhưng vẫn duy trì tốc độ đó kể từ đó.
Nate rằng trục dọc sử dụng thang đo loga. Một đánh giá cơ bản về thang đo log là trong tài
liệu bồi dưỡng toán học tại
Trang web Tài nguyên Sinh viên Khoa học Máy tính tại Computer .int.corn.
ss s
|||UNTRANSL
ATED_CONTE
NT_START|||
c.>|||UNTRA
100 bn
NSLATED_CO
10 bn
NTENT_END||
1 bn
|
100 m
<s e
r
A Nti° g 10 m
• 100.00
0
10.000
1.000
100
10
1947 50 55 60 65 70 75 80 85 90 952000 05
11
Hình 1.12 Tăng trưởng số lượng bóng bán dẫn trên mạch tích hợp

Hậu quả của định luật Moore rất sâu sắc:

1. Chi phí của một con chip hầu như không thay đổi trong giai đoạn mật độ tăng trưởng
nhanh này. Điều này có nghĩa là chi phí cho logic máy tính và mạch bộ nhớ đã giảm với
tốc độ đáng kể.
Do các phần tử logic và bộ nhớ được đặt gần nhau hơn trên các chip được đóng gói dày đặc hơn,
chiều dài đường dẫn điện được rút ngắn, tăng tốc độ vận hành.
3. Máy tính trở nên nhỏ hơn, thuận tiện hơn khi đặt trong nhiều môi trường khác nhau.
4. Có sự giảm bớt các yêu cầu về nguồn điện.
5. Các kết nối trên mạch tích hợp đáng tin cậy hơn nhiều so với các kết nối hàn. Với nhiều Mạch
hơn trên mỗi chip, có ít kết nối interchip hơn.

Mô-đun đa chip

Các yêu cầu ngày càng tăng đối với bộ nhớ dày đặc hơn và nhanh hơn đã dẫn đến những nỗ lực để
tiếp tục các phương pháp đóng gói tiêu chuẩn nhỏ gọn, với một trong những mô-đun muitichip quan
trọng nhất và được sử dụng rộng rãi. Trong thiết kế hệ thống truyền thống, mỗi quy trình riêng lẻ hoặc
chip bộ nhớ được đóng gói và sau đó được nối dây với bo mạch chủ (xem Hình 1.11)_

Cấp hai
Cấp 1 trần trụi
kết nối
kết nối chip

7-41\ n 717-77T(
Đế mạch chung
Gói MCrSI

Bảng mạch in (bo mạch chủ)


Hình 1.13 Mô-đun đa chip

Ý tưởng cơ bản đằng sau việc phát triển công nghệ MCM là giảm khoảng cách trung bình giữa các
IC trong một hệ thống điện tử. Một MCM là một gói chip chứa một số chip trần được gắn gần nhau
trên một chất nền (đế) của một số loại và được kết nối với nhau bằng các dây dẫn trong đế đó. Các
rãnh ngắn giữa các chip làm tăng hiệu suất và loại bỏ phần lớn tiếng ồn mà các rãnh bên ngoài giữa
các gói chip riêng lẻ có thể thu được.

MCM được phân loại theo chất nền, bao gồm các loại sau [BLUM99]:

 MCM-L: bao gồm các vết kim loại trên các tấm laminate hữu cơ xếp chồng lên nhau.
 MCM-C: kim loại được tạo mẫu và kết nối với nhau trên các lớp gốm đồng kết nối.
 MCM-D: các lớp kim loại lắng đọng hơi, có hoa văn xen kẽ tuần tự với spun-on hoặc hơi-
màng mỏng điện môi lắng đọng.
Kiến trúc cơ bản của một MCM bao gồm (Hình 1.13):

 Mạch tích hợp: Chip trần được gắn trên/trên bề mặt của chất nền.
 Kết nối cấp 1: Kết nối giữa các chip thông qua các đường dẫn trong chất nền.
 Chất nền: Đế chung cung cấp tất cả các kết nối tín hiệu và hỗ trợ cơ học cho tất cả các chip
 Gói MCM: Cung cấp một mức độ bảo vệ cho các mạch ngoài việc loại bỏ nhiệt và kết nối.
 Kết nối cấp 2: Cung cấp giao diện cần thiết cho bảng mạch in mà MCM được gắn trên đó.
1.5 Sự phát triển của kiến trúc Intel x86
Trong suốt cuốn sách này, chúng tôi dựa vào nhiều ví dụ cụ thể về thiết kế và triển khai máy tính để
minh họa các khái niệm và để làm sáng tỏ sự đánh đổi. Nhiều hệ thống, cả đương đại và lịch sử,
cung cấp các ví dụ về các tính năng thiết kế kiến trúc máy tính quan trọng. Nhưng cuốn sách chủ yếu
dựa trên các ví dụ từ hai họ bộ xử lý: Intel x86 và kiến trúc ARM. Các dịch vụ x86 hiện tại đại diện
cho kết quả của nhiều thập kỷ nỗ lực thiết kế trên các máy tính tập lệnh phức tạp
(CISC). X86 kết hợp các nguyên tắc thiết kế tinh vi từng chỉ được tìm thấy trên các máy tính lớn
và siêu máy tính và là một ví dụ tuyệt vời về thiết kế CISC. Một cách tiếp cận khác để thiết kế bộ xử
lý là máy tính tập lệnh rút gọn (RISC). Kiến trúc ARM được sử dụng trong nhiều hệ thống nhúng và
là một trong những hệ thống dựa trên RISC mạnh mẽ và được thiết kế tốt nhất trên thị trường. Trong
phần này và phần tiếp theo, chúng tôi cung cấp một cái nhìn tổng quan ngắn gọn về hai hệ thống này.

Về thị phần, Intel đã được xếp hạng là nhà sản xuất bộ vi xử lý số một cho các hệ thống không
nhúng trong nhiều thập kỷ, một vị trí dường như không thể mang lại. Sự phát triển của sản phẩm vi
xử lý hàng đầu của nó đóng vai trò là một chỉ báo tốt về sự phát triển của công nghệ máy tính nói
chung.

Bảng 1.3 cho thấy sự tiến hóa. Thật thú vị, khi các bộ vi xử lý đã phát triển nhanh hơn và phức tạp
hơn nhiều, Intel đã thực sự bắt kịp tốc độ. Intel đã từng phát triển các bộ vi xử lý lần lượt, cứ bốn
năm một lần. Nhưng Intel hy vọng sẽ ngăn chặn các đối thủ bằng cách cắt giảm một hoặc hai năm
thời gian phát triển này, và đã làm như vậy với các thế hệ x86 gần đây nhất.?

Intel gọi đây là mô hình tick-tock. Sử dụng mô hình này, Intel đã cung cấp thành công silicon thế hệ
tiếp theo
công nghệ cũng như kiến trúc vi xử lý mới trên các năm xen kẽ trong vài năm qua. Xem
http://www.imei.comicomenuwww/us/en/silicon-innovations/intel-tick-tock-model-generai.mm..

Bảng 1.3 Sự phát triển của Bộ vi xử lý Intel (trang 1/2)

(a) Bộ xử lý thập niên 1970

4004 8008 8080. 8086 8088

Giới thiệu 1971 1972 1974 1978. 1979

Tốc độ đồng hồ 108 kHz 108 kHz 2 MHz 5 MHz, 8 MHz, 10 MHz 5 MHz, 8 MHz

Chiều rộng xe buýt 4 bit 8 bit 8 bit 16 bits 8 bit

Số bóng bán dẫn 2.300 3.500 6.000 29,000 29,000

Kích thước tính năng 10 8 6 3 6


(chiều)
Bộ nhớ có thể định địa 640 byte 16 KB 64 KB %1 MB %1 MB
chỉ

(b) Bộ xử lý thập niên 1980


1 1 1 1
80286 386TM DX 386TM SX CPU 486TM DX

Giới thiệu 1982. 1985 Năm 1988. 1989

Tốc độ đồng hồ 6-12,5 MHz 16-33 MHz 16-33 MHz 25-50 MHz

Chiều rộng xe buýt 16 bits 32 bit 16 bits 32 bit

Số bóng bán dẫn 134.000 275.000 275.000 - 1,2 triệu.

Kích thước tính năng 1.5 1 1 0,8-1


(chiều)
Bộ nhớ có thể định địa chỉ 16 MB 4 GB 16 MB 4 GB

Bộ nhớ ảo 1 GB 64 TB 64 TB 64 TB

Cache — — — 8 kB

(c) Bộ xử lý thập niên


1990
486TM SX Pentium Pentium Pro Pentium II

Giới thiệu 1991 1993. 1995 1997.

Tốc độ đồng hồ 16-33 MHz 60-166 MHz, 150-200 MHz 200-300 MHz

Chiều rộng xe buýt 32 bit 32 bit 64 bit 64 bit

Số bóng bán dẫn 1,185 triệu 3,1 triệu $5,5 triệu đô la 7.5 tr USD

Kích thước tính năng 1 0.8 0.6 0.35


(chiều)
Bộ nhớ có thể định địa 4 GB 4 GB 64 GB 64 GB
chỉ
Bộ nhớ ảo 64 TB 64 TB 64 TB 64 TB

Cache 8 kB 8 kB 512 kB L1 và 1 MB L2 512 kB L2


i

(d) Bộ xử lý gần đây

Pentium Pentium Bộ đôi lõi 2 Lõi i7


Ill 4 EE
4960X

Giới thiệu 1999 2000 2006 2013 2017


Lõi i9-
7900X
Tốc độ đồng hồ 450-660 1,3-1,8 1,06-1,2 4 GHz 4.3 GHz
MHz GHz GHz

Chiều rộng xe buýt 64 bit 64 bit 64 bit 64 bit 64 bit

Số bóng bán dẫn 9,5 triệu 42 triệu 167 triệu 1,86 tỷ 7,2 tỷ

Kích thước tính 250 180 65 22 14


năng (nm)
Bộ nhớ có thể định 64 GB 64 GB 64 GB 64 GB 128 GB
địa chỉ

Bộ nhớ ảo 64 TB 64 TB 64 TB 64 TB 64 TB

Cache 512 kB L2 256 kB L2 2 MB L2 1,5 MB L2/ 15 MB 14 MB L3


L3

##$_09$####$_09$ 1 1 2 6 10
##+ Số lõi.

Đáng để liệt kê một số điểm nổi bật về sự phát triển của dòng sản phẩm Intel:

 8080: Bộ vi xử lý đa năng đầu tiên trên thế giới. Đây là một máy 8 bit, với đường dẫn dữ liệu 8
bit đến bộ nhớ. 8080 được sử dụng trong máy tính cá nhân đầu tiên, Altair.
 8086: Một cỗ máy 16 bit mạnh mẽ hơn nhiều. Ngoài đường dẫn dữ liệu rộng hơn và thanh ghi lớn
hơn, 8086 còn có bộ nhớ đệm lệnh hoặc hàng đợi để tìm nạp trước một vài lệnh trước khi chúng
được thực thi. Một biến thể của bộ xử lý này, 8088, đã được sử dụng trong máy tính cá nhân đầu
tiên của IBM, đảm bảo sự thành công của Intel. 8086 là sự xuất hiện đầu tiên của kiến trúc x86.
 80286: Phần mở rộng này của 8086 cho phép giải quyết bộ nhớ 16 MB thay vì chỉ 1 MB.
 80386: Máy 32 bit đầu tiên của Intel và một cuộc đại tu lớn của sản phẩm. Với kiến trúc 32 bit,
80386 cạnh tranh với sự phức tạp và sức mạnh của máy tính mini và máy tính lớn được giới
thiệu chỉ vài năm trước đó. Đây là bộ xử lý Intel đầu tiên hỗ trợ đa nhiệm, có nghĩa là nó có thể
chạy nhiều chương trình cùng một lúc.
 80486: 80486 giới thiệu việc sử dụng công nghệ bộ nhớ cache tinh vi và mạnh mẽ hơn nhiều và
đường ống dẫn lệnh tinh vi. 80486 cũng cung cấp một bộ đồng xử lý toán học tích hợp, giảm tải
các hoạt động toán học phức tạp từ CPU chính.
 Pentium: Với Pentium, Intel đã giới thiệu việc sử dụng các kỹ thuật siêu âm, cho phép
nhiều lệnh thực thi song song.
 Pentium Pro: Pentium Pro tiếp tục chuyển sang tổ chức siêu cấp bắt đầu với Pentium, với việc
sử dụng tích cực đổi tên đăng ký, dự đoán chi nhánh, phân tích luồng dữ liệu và thực hiện đầu
cơ.
 Pentium II: Pentium II kết hợp công nghệ Intel MMX, được thiết kế đặc biệt để xử lý dữ liệu
video, âm thanh và đồ họa hiệu quả.
 Pentium III: Pentium III kết hợp các hướng dẫn dấu phẩy động bổ sung: Phần mở rộng tập lệnh
Streaming SIMD Extensions (SSE) đã bổ sung 70 hướng dẫn mới được thiết kế để tăng hiệu
suất khi thực hiện chính xác các thao tác tương tự trên nhiều đối tượng dữ liệu. Các ứng dụng
điển hình là xử lý tín hiệu số và xử lý đồ họa.
 Pentium 4: Pentium 4 bao gồm dấu phẩy động bổ sung và các cải tiến khác cho
đa phương tiện
 Lõi: Đây là bộ vi xử lý Intel x86 đầu tiên có lõi kép, đề cập đến việc triển khai hai lõi trên
một chip.
 Lõi 2: Lõi 2 mở rộng kiến trúc Lõi lên 64 bit. Core 2 Quad cung cấp bốn lõi trên một chip
duy nhất. Các sản phẩm Core gần đây có tối đa 10 lõi trên mỗi chip. Một bổ sung quan
trọng cho kiến trúc là tập lệnh Advanced Vector Extensions cung cấp một tập hợp các lệnh
256 bit, và sau đó là 512 bit, để xử lý hiệu quả dữ liệu vectơ.
Gần 40 năm sau khi được giới thiệu vào năm 1978, kiến trúc x86 tiếp tục thống trị thị trường
bộ xử lý bên ngoài các hệ thống nhúng. Mặc dù tổ chức và công nghệ của các máy x86 đã thay
đổi đáng kể trong nhiều thập kỷ, kiến trúc tập lệnh đã phát triển để tương thích ngược với các
phiên bản trước đó. Do đó, bất kỳ chương trình nào được viết trên phiên bản cũ hơn của kiến
trúc x86 đều có thể thực thi trên các phiên bản mới hơn. Tất cả các thay đổi đối với kiến trúc
tập lệnh đều liên quan đến việc bổ sung vào tập lệnh, không có phép trừ. Tốc độ thay đổi là
việc bổ sung khoảng một lệnh mỗi tháng được thêm vào kiến trúc [ANTH08], do đó hiện có
hàng ngàn lệnh trong tập lệnh.

X86 cung cấp một minh họa tuyệt vời về những tiến bộ trong phần cứng máy tính trong 35
năm qua. 1978 8086 được giới thiệu với tốc độ xung nhịp 5 MHz và có 29.000 bóng bán dẫn.
Core i7 EE 4960X sáu lõi được giới thiệu vào năm 2013 hoạt động ở tốc độ 4 GHz, tăng tốc hệ
số 800 và có 1,86 tỷ bóng bán dẫn, gấp khoảng 64.000 lần so với 8086. Tuy nhiên, Core i7 EE
4960X chỉ lớn hơn một chút so với 8086 và có chi phí tương đương.
1.6 Hệ thống nhúng
Thuật ngữ hệ thống nhúng đề cập đến việc sử dụng thiết bị điện tử và phần mềm trong một
sản phẩm, trái ngược với máy tính đa năng, chẳng hạn như hệ thống máy tính xách tay hoặc
máy tính để bàn. Hàng triệu máy tính được bán ra mỗi năm, bao gồm máy tính xách tay, máy
tính cá nhân, máy trạm, máy chủ, máy tính lớn và siêu máy tính. Ngược lại, hàng tỷ hệ thống
máy tính được sản xuất mỗi năm được nhúng trong các thiết bị lớn hơn. Ngày nay, nhiều, có
lẽ hầu hết, các thiết bị sử dụng năng lượng điện đều có một hệ thống máy tính nhúng. Có khả
năng trong tương lai gần, hầu như tất cả các thiết bị như vậy sẽ có hệ thống máy tính nhúng.

Các loại thiết bị có hệ thống nhúng gần như quá nhiều để liệt kê. Ví dụ bao gồm điện thoại di
động, máy ảnh kỹ thuật số, máy quay video, máy tính, lò vi sóng, hệ thống an ninh gia đình,
máy giặt, hệ thống chiếu sáng, bộ điều nhiệt, máy in, các hệ thống ô tô khác nhau (ví dụ,
điều khiển truyền động, điều khiển hành trình, phun nhiên liệu, hệ thống chống bó cứng
phanh, và hệ thống treo), vợt tennis, bàn chải đánh răng, và nhiều loại cảm biến và bộ truyền
động trong hệ thống tự động.

Thông thường, các hệ thống nhúng được kết hợp chặt chẽ với môi trường của chúng. Điều
này có thể làm phát sinh các ràng buộc theo thời gian thực do nhu cầu tương tác với môi
trường. Các ràng buộc, chẳng hạn như tốc độ chuyển động cần thiết, độ chính xác cần thiết
của phép đo và thời lượng thời gian cần thiết, quyết định thời gian hoạt động của phần mềm.
Nếu nhiều hoạt động phải được quản lý đồng thời, điều này áp đặt các ràng buộc thời gian
thực phức tạp hơn.

Bộ nhớ

Giao diện Cổng chẩn


người dùng đoán

Chuyể chứng từ
n đổi A/D giao khi
chấp
thuận
thanh toán
Chuyển
Thiết bị
Cảm đổi
biến truyền
động/ chỉ
báo
Hình 1.14 cho thấy theo thuật ngữ chung một tổ chức hệ thống nhúng. Ngoài bộ xử lý và bộ
nhớ, có một số yếu tố khác với máy tính để bàn hoặc máy tính xách tay thông thường:

Hình 1.14 Có thể tổ chức một hệ thống nhúng


 Có thể có nhiều Giao diện cho phép hệ thống đo lường, thao tác và tương tác với môi
trường bên ngoài. Các hệ thống nhúng thường Tương tác (cảm giác, thao tác và
giao tiếp) với thế giới bên ngoài thông qua các cảm biến và bộ truyền động, và do đó thường là
các hệ thống phản ứng; một hệ thống phản ứng là tương tác liên tục với môi trường và thực hiện
với tốc độ được xác định bởi môi trường đó.
 Giao diện của con người có thể đơn giản như đèn nhấp nháy hoặc phức tạp như tầm nhìn
robot thời gian thực. Trong nhiều trường hợp, không có giao diện của con người.
 Cổng chẩn đoán có thể được sử dụng để chẩn đoán hệ thống đang được kiểm soát - không
chỉ để chẩn đoán máy tính.
 Có thể sử dụng phần cứng có thể lập trình trường đặc biệt (FPGA), dành riêng cho ứng
dụng (ASIC) hoặc thậm chí phần cứng phi kỹ thuật số để tăng hiệu suất hoặc độ tin cậy.
 Phần mềm thường có chức năng cố định và dành riêng cho ứng dụng.
 Hiệu quả là điều tối quan trọng đối với các hệ thống nhúng. Chúng được tối ưu hóa cho năng
lượng, mã
kích thước, thời gian thực hiện, trọng lượng và kích thước, và chi phí.
Cũng có một số lĩnh vực đáng chú ý tương tự như các hệ thống máy tính đa năng:

 Ngay cả với phần mềm chức năng cố định trên danh nghĩa, khả năng nâng cấp trường để sửa
lỗi, cải thiện bảo mật và thêm chức năng, đã trở nên rất quan trọng đối với các hệ thống nhúng
và không chỉ trong các thiết bị tiêu dùng.
 Một sự phát triển tương đối gần đây là các nền tảng hệ thống nhúng hỗ trợ nhiều ứng dụng
khác nhau. Ví dụ điển hình về điều này là điện thoại thông minh và các thiết bị âm thanh/hình
ảnh, chẳng hạn như TV thông minh.

The Internet of Things.

Cần gọi riêng một trong những động lực chính trong sự gia tăng của
Hệ thống Internet of things (loT) là một thuật ngữ đề cập đến việc mở rộng kết nối các thiết bị thông
minh, từ các thiết bị gia dụng đến các cảm biến nhỏ. Một chủ đề nổi bật là việc nhúng các máy thu
phát di động tầm ngắn vào một loạt các thiết bị và vật dụng hàng ngày, cho phép các hình thức giao
tiếp mới giữa con người và đồ vật, và giữa các đồ vật với nhau. Internet hiện hỗ trợ kết nối hàng tỷ
đối tượng công nghiệp và cá nhân, thường là thông qua các hệ thống đám mây. Các đối tượng cung
cấp thông tin cảm biến, tác động lên môi trường của chúng và trong một số trường hợp, tự sửa đổi để
tạo ra sự quản lý tổng thể cho một hệ thống lớn hơn, như nhà máy hoặc thành phố.

LoT chủ yếu được điều khiển bởi các thiết bị nhúng sâu (được định nghĩa bên dưới). Các thiết bị
này có băng thông thấp, khả năng thu thập dữ liệu lặp lại thấp và các thiết bị sử dụng dữ liệu băng
thông thấp giao tiếp với nhau và cung cấp dữ liệu thông qua giao diện người dùng. Các thiết bị
nhúng, chẳng hạn như camera an ninh video độ phân giải cao, điện thoại VoIP video và một số thiết
bị khác, yêu cầu băng thông cao
khả năng phát trực tuyến. Tuy nhiên, vô số sản phẩm chỉ đơn giản là yêu cầu các gói dữ liệu
được phân phối không liên tục.

Với tham chiếu đến các hệ thống đầu cuối được hỗ trợ, Internet đã trải qua khoảng bốn thế hệ triển
khai, đỉnh điểm là loT:

1. Công nghệ thông tin (CNTT): PC, máy chủ, bộ định tuyến, tường lửa, v.v., được mua dưới
dạng thiết bị CNTT bởi những người CNTT doanh nghiệp và chủ yếu sử dụng kết nối có dây.
2. Công nghệ vận hành (OT): Máy móc/thiết bị có CNTT nhúng được xây dựng bởi các công ty
không phải CNTT, chẳng hạn như máy móc y tế, SCADA (kiểm soát giám sát và thu thập dữ
liệu), kiểm soát quy trình và kiốt, được mua dưới dạng thiết bị bởi những người OT của
doanh nghiệp và chủ yếu sử dụng kết nối có dây.
3. Công nghệ CÁ nhân: Điện thoại thông minh, máy tính bảng và đầu đọc sách điện tử
được người tiêu dùng (nhân viên) mua dưới dạng thiết bị CNTT độc quyền sử dụng kết
nối không dây và thường là nhiều hình thức kết nối không dây.
4. Công nghệ cảm biến/bộ truyền động: Các thiết bị một mục đích được mua bởi người tiêu
dùng, CNTT và OT
mọi người chỉ sử dụng kết nối không dây, thường ở một dạng duy nhất, như một phần
của các hệ thống lớn hơn.

Đây là thế hệ thứ tư thường được coi là loT và nó được đánh dấu bằng việc sử dụng hàng tỷ thiết bị
nhúng.

Hệ điều hành nhúng

Có hai cách tiếp cận chung để phát triển một hệ điều hành nhúng (HĐH). Cách tiếp cận đầu tiên là lấy
một hệ điều hành hiện có và điều chỉnh nó cho ứng dụng nhúng. Ví dụ, có các phiên bản nhúng của
Linux, Windows và Mac, cũng như các hệ điều hành thương mại và độc quyền khác dành riêng cho
các hệ thống nhúng. Cách tiếp cận khác là thiết kế và triển khai một hệ điều hành chỉ dành cho mục
đích sử dụng nhúng. Một ví dụ điển hình là TinyOS, được sử dụng rộng rãi trong các mạng cảm biến
không dây. Chủ đề này được khám phá sâu trong [STAL18].

Bộ xử lý ứng dụng so với Bộ xử lý chuyên dụng

Trong tiểu mục này và hai tiểu mục tiếp theo, chúng tôi giới thiệu ngắn gọn một số thuật ngữ thường
thấy trong các tài liệu về các hệ thống nhúng. Bộ xử lý ứng dụng được xác định bởi khả năng của
bộ xử lý để thực thi các hệ điều hành phức tạp, chẳng hạn như Linux, Android và Chrome. Do đó, bộ
xử lý ứng dụng có mục đích chung về bản chất. Một ví dụ điển hình về việc sử dụng bộ xử lý ứng
dụng nhúng là điện thoại thông minh. Hệ thống nhúng được thiết kế để hỗ trợ nhiều ứng dụng và
thực hiện nhiều chức năng khác nhau.

Hầu hết các hệ thống nhúng đều sử dụng một bộ xử lý chuyên dụng, như tên gọi của nó, dành riêng
cho một hoặc một số lượng nhỏ các tác vụ cụ thể theo yêu cầu của thiết bị chủ. Bởi vì một hệ thống
nhúng như vậy được dành riêng cho một nhiệm vụ hoặc nhiệm vụ cụ thể, bộ xử lý và các thành phần
liên quan có thể được thiết kế để giảm kích thước và chi phí.

Bộ vi xử lý so với Bộ vi điều khiển

Như chúng ta đã thấy, các chip vi xử lý ban đầu bao gồm thanh ghi, ALU và một số loại bộ điều
khiển hoặc logic xử lý lệnh. Khi mật độ bóng bán dẫn tăng lên, có thể tăng độ phức tạp của kiến
trúc tập lệnh, và cuối cùng là thêm bộ nhớ và nhiều bộ xử lý. Các chip vi xử lý đương đại, như thể
hiện trong Hình 1.2, bao gồm nhiều lõi và một lượng lớn bộ nhớ cache.

Chip vi điều khiển làm cho việc sử dụng không gian logic có sẵn về cơ bản khác nhau. Hình 1.15
thể hiện một cách tổng quát các thành phần thường được tìm thấy trên chip vi điều khiển. Như
được hiển thị, vi điều khiển là một chip đơn chứa bộ xử lý, bộ nhớ không bay hơi cho chương trình
(ROM), bộ nhớ dễ bay hơi cho đầu vào và đầu ra (RAM), đồng hồ và bộ điều khiển I/O. Phần bộ xử
lý của vi điều khiển có diện tích silicon thấp hơn nhiều so với các bộ vi xử lý khác và hiệu suất năng
lượng cao hơn nhiều. Chúng tôi kiểm tra tổ chức vi điều khiển chi tiết hơn trong Phần 1.7.
BỘ XỬ LÝ:

Thu thập dữ
liệu tương tự A/D Rani Tạm thời
dữ liệu bộ chuyển đổi . C
chứng từ
RONI
Truyền dữ liệu giao khi chấp
tương tự thuận thanh
toán I. Chương
trình và dữ
thiết bị liệu
đường hóa

Gửi/nhận Cổng I/O Dữ liệu cố


CHIP BỘ
dữ liệu nối tiếp định
NHỚ (0):

Giao diện Cổng I/0


NHỎ HƠN Các chức
ngoại vi song Bus
song năng ước
hệ tính thời
thống gian

Hình 1.15 Phần tử MicroCOntr011 hoặc chip điển hình *

Còn được gọi là "máy tính trên chip", hàng tỷ đơn vị vi điều khiển được nhúng mỗi năm trong vô số
sản phẩm từ đồ chơi đến thiết bị gia dụng đến ô tô. Ví dụ: một chiếc xe có thể sử dụng 70 vi điều
khiển trở lên. Thông thường, đặc biệt là đối với các vi điều khiển nhỏ hơn, ít tốn kém hơn, chúng
được sử dụng làm bộ xử lý chuyên dụng cho các tác vụ cụ thể. Ví dụ, vi điều khiển được sử dụng
nhiều trong các quy trình tự động hóa. Bằng cách cung cấp các phản ứng đơn giản đối với đầu vào,
chúng có thể điều khiển máy móc, bật và tắt quạt, mở và định lượng van, v.v. Chúng là những bộ
phận tích hợp của công nghệ công nghiệp hiện đại và là một trong những cách rẻ nhất để sản xuất
máy móc có thể xử lý các khoản tài trợ cực kỳ phức tạp.

Các vi điều khiển có nhiều kích cỡ vật lý và sức mạnh xử lý. Các bộ xử lý có kiến trúc từ 4 bit đến 32
bit. Bộ vi điều khiển có xu hướng chậm hơn nhiều so với bộ vi xử lý, thường hoạt động ở dải MHz
thay vì tốc độ GHz của bộ vi xử lý. Một tính năng điển hình khác của vi điều khiển là nó không cung
cấp tương tác với con người. Vi điều khiển được lập trình cho một tác vụ cụ thể, được nhúng trong
thiết bị của nó và thực thi khi được yêu cầu.

Hệ thống nhúng so với Hệ thống nhúng sâu

Trong phần này, chúng ta đã định nghĩa khái niệm về một hệ thống nhúng. Một tập hợp con của
các hệ thống nhúng và một tập hợp con khá nhiều, được gọi là các hệ thống nhúng sâu. Mặc dù
thuật ngữ này được sử dụng rộng rãi trong các tài liệu kỹ thuật và thương mại, bạn sẽ tìm kiếm
trên Internet một cách vô ích (hoặc ít nhất là tôi đã làm) để có một định nghĩa đơn giản. Nói chung,
chúng ta có thể nói rằng một hệ thống nhúng sâu có một bộ xử lý có hành vi khó quan sát bởi cả lập
trình viên và người dùng. Một hệ thống nhúng sâu sử dụng vi điều khiển thay vì bộ vi xử lý, không thể
lập trình được khi
logic chương trình cho thiết bị đã được ghi vào ROM (bộ nhớ chỉ đọc) và không có tương
tác với người dùng.

Các hệ thống nhúng sâu là các thiết bị chuyên dụng, đơn mục đích phát hiện một cái gì đó
trong môi trường, thực hiện một mức độ xử lý cơ bản và sau đó làm điều gì đó với kết quả.
Các hệ thống nhúng sâu thường có khả năng không dây và xuất hiện trong các cấu hình được
nối mạng, chẳng hạn như mạng cảm biến được triển khai trên một khu vực rộng lớn (ví dụ:
nhà máy, cánh đồng nông nghiệp). Internet vạn vật phụ thuộc rất nhiều vào các hệ thống
nhúng sâu. Thông thường, các hệ thống nhúng sâu có những hạn chế tài nguyên cực đoan về
bộ nhớ, kích thước bộ xử lý, thời gian và mức tiêu thụ điện năng.
Kiến trúc 1,7 ARM
Kiến trúc ARM đề cập đến kiến trúc bộ xử lý đã phát triển từ các nguyên tắc thiết kế RISC và
được sử dụng trong các hệ thống nhúng. Chương 7 xem xét chi tiết các nguyên tắc thiết kế
RISC. Trong phần này, chúng tôi đưa ra một cái nhìn tổng quan ngắn gọn về kiến trúc ARM.

Tiến hóa CÁNH TAY

ARM là một dòng vi xử lý và vi điều khiển dựa trên RISC được thiết kế bởi ARM Holdings,
Cambridge, Anh. Công ty không sản xuất bộ vi xử lý mà thay vào đó thiết kế bộ vi xử lý và
kiến trúc đa lõi và cấp phép chúng cho các nhà sản xuất. ARM Holdings có hai loại sản phẩm
có thể cấp phép: bộ xử lý và kiến trúc bộ xử lý. Đối với bộ xử lý, khách hàng mua quyền sử
dụng thiết kế do ARM cung cấp trong chip của riêng họ. Đối với kiến trúc bộ xử lý, khách
hàng mua quyền thiết kế bộ xử lý của riêng họ phù hợp với kiến trúc của ARM.

Chip ARM là bộ xử lý tốc độ cao được biết đến với kích thước khuôn nhỏ và yêu cầu năng
lượng thấp. Chúng được sử dụng rộng rãi trong điện thoại thông minh và các thiết bị cầm tay
khác, bao gồm cả hệ thống trò chơi, cũng như một lượng lớn các sản phẩm tiêu dùng. Chip
ARM là bộ xử lý trong các thiết bị iPod và iPhone phổ biến của Apple và cũng được sử dụng
trong hầu hết các điện thoại thông minh Android. Các đối tác của ARM đã xuất xưởng 16,7 tỷ
chip dựa trên ARM trong năm 2016. ARM có lẽ là kiến trúc bộ xử lý nhúng được sử dụng rộng
rãi nhất và thực sự là kiến trúc bộ xử lý được sử dụng rộng rãi nhất trên thế giới [VANC14].

Nguồn gốc của công nghệ ARM có thể bắt nguồn từ công ty Acorn Computers có trụ sở tại
Anh. Đầu những năm 1980, Acorn đã được Tập đoàn Phát thanh Truyền hình Anh (BBC) trao
hợp đồng phát triển kiến trúc máy vi tính mới cho Dự án Đọc viết Máy tính của BBC. Sự thành
công của hợp đồng này cho phép Acorn tiếp tục phát triển bộ xử lý RISC thương mại đầu tiên,
Acorn RISC Machine (ARM). Phiên bản đầu tiên, ARM1, bắt đầu hoạt động vào năm 1985 và
được sử dụng cho nghiên cứu và phát triển nội bộ cũng như được sử dụng như một bộ đồng
xử lý trong máy BBC.

Trong giai đoạn đầu này, Acorn đã sử dụng Công nghệ VLSI của công ty để chế tạo thực tế
các chip xử lý. VLSI đã được cấp phép để tự tiếp thị chip và đã có một số thành công trong
việc khiến các công ty khác sử dụng ARM trong các sản phẩm của họ, đặc biệt là một bộ
xử lý nhúng.

Thiết kế ARM phù hợp với nhu cầu thương mại ngày càng tăng về bộ xử lý hiệu suất cao, tiêu
thụ điện năng thấp, kích thước nhỏ và chi phí thấp cho các ứng dụng nhúng. Nhưng sự phát
triển hơn nữa nằm ngoài khả năng của Acorn. Theo đó, một công ty mới đã được tổ chức, với
Acorn, VLSI và Apple Computer là đối tác sáng lập, được gọi là ARM Ltd. Acorn RISC Machine
trở thành Advanced RISC Machines.8 ARM đã được mua lại bởi công ty viễn thông Nhật Bản
SoftBank Group vào năm 2016.

8 Công ty đã bỏ tên gọi Advanced RISC Machines vào cuối những năm 1990. Bây giờ nó chỉ đơn giản
được gọi là kiến trúc ARM.

Kiến trúc bộ hướng dẫn


Tập lệnh ARM rất thường xuyên, được thiết kế để triển khai hiệu quả bộ xử lý và thực thi
hiệu quả. Tất cả các hướng dẫn đều dài 32 bit và tuân theo định dạng thông thường. Điều
này làm cho ARM ISA phù hợp để triển khai trên nhiều loại sản phẩm.
Tăng cường ISA ARM cơ bản là tập lệnh Thumb, là tập hợp con được mã hóa lại của tập lệnh ARM.
Thumb được thiết kế để tăng hiệu suất của việc triển khai ARM sử dụng bus dữ liệu bộ nhớ 16 bit
hoặc hẹp hơn và cho phép mật độ mã tốt hơn so với mật độ được cung cấp bởi tập lệnh ARM. Tập
lệnh Thumb chứa một tập hợp con của tập lệnh ARM 32-bit được mã hóa lại thành các lệnh 16 bit.
Phiên bản được xác định hiện tại là Thumb-2.

Các ISA của ARM và Thumb-2 được thảo luận trong Chương 12 và 13. Sản phẩm ARM

ARM Holdings cấp phép cho một số bộ vi xử lý chuyên dụng và các công nghệ liên quan, nhưng
phần lớn dòng sản phẩm của họ là dòng kiến trúc bộ vi xử lý Cortex. Có ba kiến trúc Cortex, được
gắn nhãn thuận tiện với các chữ cái đầu A, R và M.

CORTEX-A

Dòng bộ xử lý Cortex-A là bộ xử lý ứng dụng, dành cho các thiết bị di động như điện thoại thông minh
và đầu đọc sách điện tử, cũng như các thiết bị tiêu dùng như TV kỹ thuật số và cổng gia đình (ví dụ:
modem Internet DSL và cáp). Các bộ xử lý này chạy ở tần số xung nhịp cao hơn (trên 1 GHz) và hỗ
trợ bộ quản lý bộ nhớ (MMU), cần thiết cho các hệ điều hành đầy đủ tính năng như Linux, Android,
MS Windows và hệ điều hành di động. MMU là một mô-đun phần cứng hỗ trợ bộ nhớ ảo và phân
trang bằng cách dịch các địa chỉ ảo thành địa chỉ vật lý; chủ đề này được khám phá trong Chương 8.

Hai kiến trúc sử dụng cả hướng dẫn ARM và Thumb-2. Một số bộ xử lý trong loạt bài này là máy
32 bit và một số khác là máy 64 bit.

CORTEX-R

Cortex-R được thiết kế để hỗ trợ các ứng dụng thời gian thực, trong đó thời gian của các sự kiện cần
được kiểm soát với phản ứng nhanh với các sự kiện. Chúng có thể chạy ở tần số đồng hồ khá cao
(ví dụ: 2 MHz đến 4 MHz) và có độ trễ phản hồi rất thấp. Cortex-R bao gồm các cải tiến cho cả tập
lệnh và tổ chức bộ xử lý để hỗ trợ các thiết bị thời gian thực nhúng sâu. Hầu hết các bộ xử lý này
không có MMU; các yêu cầu dữ liệu hạn chế và số lượng quy trình đồng thời hạn chế giúp loại bỏ
nhu cầu hỗ trợ phần cứng và phần mềm phức tạp cho bộ nhớ ảo. Cortex-R có Bộ bảo vệ bộ nhớ
(MPU), bộ nhớ cache và các tính năng bộ nhớ khác được thiết kế cho các ứng dụng công nghiệp.
MPU là một mô-đun phần cứng cấm một chương trình trong bộ nhớ vô tình truy cập bộ nhớ được
gán cho một chương trình đang hoạt động khác. Sử dụng các phương pháp khác nhau, một ranh
giới bảo vệ được tạo ra xung quanh chương trình và các hướng dẫn trong chương trình đều bị cấm
tham chiếu dữ liệu bên ngoài ranh giới đó.

Ví dụ về các hệ thống nhúng sẽ sử dụng Cortex-R là hệ thống phanh ô tô, bộ điều khiển lưu trữ khối
lượng lớn, và các thiết bị mạng và in ấn.

CORTEX-M

Bộ xử lý dòng Cortex-M đã được phát triển chủ yếu cho miền vi điều khiển, nơi nhu cầu quản lý ngắt
nhanh, có tính xác định cao được kết hợp với mong muốn số lượng cổng cực kỳ thấp và mức tiêu thụ
điện năng thấp nhất có thể. Như với dòng Cortex-R, kiến trúc Cortex-M có MPU nhưng không có
MMU. Cortex-M chỉ sử dụng tập lệnh Thumb-2. Thị trường cho Cortex-M bao gồm các thiết bị loT,
mạng cảm biến/thiết bị truyền động không dây được sử dụng trong các nhà máy và các doanh nghiệp
khác, thiết bị điện tử thân xe, v.v.
Hiện tại có bảy phiên bản của dòng Cortex-M:

 Cortex-MO: Được thiết kế cho các ứng dụng 8 và 16 bit, mô hình này nhấn mạnh chi phí
thấp, công suất cực thấp và đơn giản. nó được tối ưu hóa cho kích thước khuôn silicon
nhỏ (bắt đầu từ cổng 12k) và sử dụng trong các chip chi phí thấp nhất.
 Cortex-M0+: Một phiên bản nâng cao của MO tiết kiệm năng lượng hơn
 Cortex-M3: Được thiết kế cho các ứng dụng 16 và 32 bit, mô hình này nhấn mạnh hiệu
suất và hiệu quả năng lượng. Nó cũng có các tính năng gỡ lỗi và theo dõi toàn diện để
cho phép các nhà phát triển phần mềm phát triển ứng dụng của họ một cách nhanh
chóng.
 Cortex-M4: Mô hình này cung cấp tất cả các tính năng của Gortex-M3, với các Hướng
dẫn bổ sung để hỗ trợ các tác vụ xử lý tín hiệu số.
 Cortex-M7: Cung cấp hiệu suất cao hơn so với M4. Nó vẫn chủ yếu là một máy 32 bit
nhưng sử dụng các bus dữ liệu và hướng dẫn rộng 64 bit.
 Cortex-M23: Mô hình này tương tự như MO-F, và thêm các hướng dẫn phân chia số
nguyên và một số tính năng bảo mật.
 Cortex-M33: Mô hình này tương tự như M4 và bổ sung một số tính năng bảo mật.
Trong văn bản này, chúng tôi sẽ chủ yếu sử dụng ARM Cortex-M3 làm bộ xử lý hệ thống
nhúng ví dụ của chúng tôi. Nó phù hợp nhất trong tất cả các mô hình ARM sử dụng vi điều
khiển đa năng. Cortex-MS được sử dụng bởi nhiều nhà sản xuất các sản phẩm vi điều khiển.
Các thiết bị vi điều khiển ban đầu từ các đối tác chính đã kết hợp bộ xử lý Cortex-M3 với
flash, SRAM và nhiều thiết bị ngoại vi để cung cấp dịch vụ cạnh tranh với mức giá chỉ 1 đô
la.
Fligum 1:1113 cung cấp sơ đồ khối của vi điều khiển EFM32 từ Silicon Labs. Hình này cũng
cho thấy chi tiết về bộ xử lý Cortex-M3 và các thành phần lõi. Chúng tôi lần lượt kiểm tra từng
cấp độ.

Bảo Giao diện tương 'Hẹn giờ & Kích hoạt. \ 'Cổng I/O song song "Giao diện
mật tự nối tiếp
[Peri ph) Hẹn Đặt
lại USB USART
L D/A giờ/[ mã
AESph bộ đếm trong xe
ầncứn con- buýt PIN (
[ A/D
con- Mục Bên
g động verter ne Thấp
START|||\e y)
|||UNTRANSLAT
ED_CONTENT_
END||| ngoài
vật đích UART
thân
mềm Real Inter- [UART năng
năng lượngthời chung
...._____________
gian ctrlPulse i \. lệnh rupts lượng
__________________ 1 Watch :\ kiểm thấp
tra vi
Bus ngoại
[_____ i _______
counter dog tin!,
Bus 32 bit

Điện áp So sánh Bộ Bộ Bộ Gỡ lỗi r DMA


regula- điện áp dao động dao động nhớ [SRAM ,
liênmặt Đèn
RC tần tinh thể Flash bộ nhớ báo
64 kB
[ Tor 2 số cao tần số cao , 64 kB
(Bảo hẹn
Brown-out vệ giờ
Đặt lại Bộ Bộ dao
de- tector dao động động bộ nhớ- Bộ xử lý Cortex-M3
khi bật gion
nguồn RC tinh thể
Tổ quản lý năng tần sốlý đồng
Quản thấp
treq hồ Lõi và bộ nhớ T
B
.
lượng thấp T
B
Chip vi điều khiển .
Giao SRAM &
diện I/F ngoại
ICode biên
ma trận
bus
Logic gỡ lỗi

Bộ nhớ
dap
bộ phận bảo
vệ
_-------
NVIC trên
nòng cốt, ETM
Vỏ não-\13 Lõi
______
hạt nhân,

Cortex-M3
Giao diện NVIC Giao diện ETM Bộ xử lý

ALU 32 bit
I 31-bit
bộ chia phần số nhân
cứng
Điều khiển Giải
Logic. mã bằng ngón
tay cái
Giao diện Giao diện dữ
hướng dẫn liệu
Hình 1.16 Chip vi điều
khiển điển hình dựa trên Cortex-MS

Lõi Cortex-M3 sử dụng các bus riêng biệt để hướng dẫn và dữ liệu. Sự sắp xếp này đôi khi được gọi
là kiến trúc Harvard, trái ngược với kiến trúc von Neumann, sử dụng cùng một bus tín hiệu và bộ nhớ
cho cả hướng dẫn và dữ liệu. Bằng cách có thể đọc cả lệnh và dữ liệu từ bộ nhớ cùng một lúc, bộ xử
lý Cortex-M3 có thể thực hiện nhiều thao tác song song, tăng tốc độ thực thi ứng dụng. Lõi chứa bộ
giải mã cho các lệnh Thumb, ALU nâng cao hỗ trợ nhân và chia phần cứng, logic điều khiển và Giao
diện cho các thành phần khác của bộ xử lý. Cụ thể, có một giao diện cho bộ điều khiển ngắt vectơ
lồng nhau (NVIC) và mô-đun macrocell theo dõi nhúng (ETM).

Lõi là một phần của mô-đun được gọi là bộ xử lý Cortex-M3. Thuật ngữ này có phần gây hiểu
nhầm, bởi vì thông thường trong tài liệu, các thuật ngữ cốt lõi và bộ xử lý được xem là tương
đương. Ngoài lõi, bộ xử lý bao gồm các yếu tố sau:

 NVIC: Cung cấp khả năng xử lý ngắt có thể định cấu hình cho bộ xử lý. Nó tạo điều kiện cho
ngoại lệ có độ trễ thấp và xử lý gián đoạn, đồng thời kiểm soát việc quản lý nguồn điện
 ETM: Một thành phần gỡ lỗi tùy chọn cho phép tái tạo thực thi chương trình. ETM được thiết kế để
trở thành một công cụ gỡ lỗi tốc độ cao, công suất thấp chỉ hỗ trợ theo dõi hướng dẫn.
 Cổng truy cập gỡ lỗi (DAP): Điều này cung cấp Giao diện để truy cập gỡ lỗi bên ngoài vào
bộ xử lý.
 Logic gỡ lỗi: Chức năng gỡ lỗi cơ bản Bao gồm dừng bộ xử lý, một bước, truy cập đăng
ký lõi bộ xử lý, điểm ngắt phần mềm không giới hạn và truy cập bộ nhớ hệ thống đầy đủ.
 Giao diện Chế độ: Tìm nạp hướng dẫn từ không gian bộ nhớ mã.
 SRAM & giao diện ngoại vi: Đọc giao diện ghi vào bộ nhớ dữ liệu và các thiết bị ngoại vi.
 Ma trận bus: Kết nối các giao diện lõi và gỡ lỗi với các bus bên ngoài trên vi điều khiển.
 Bộ bảo vệ bộ nhớ:Bảo vệ dữ liệu quan trọng được hệ điều hành sử dụng khỏi người dùng
các ứng dụng, tách các tác vụ xử lý bằng cách không cho phép truy cập vào dữ liệu của nhau,
vô hiệu hóa quyền truy cập vào các vùng bộ nhớ, cho phép các vùng bộ nhớ được định nghĩa
là chỉ đọc và phát hiện các truy cập bộ nhớ không mong muốn có khả năng phá vỡ hệ thống.
Phần trên của Hình 1.16 cho thấy sơ đồ khối của một vi điều khiển điển hình được xây dựng với
Cortex-M3, trong trường hợp này là vi điều khiển EFM32. Vi điều khiển này được bán trên thị
trường để sử dụng trong nhiều loại thiết bị, bao gồm đo năng lượng, khí đốt và nước; hệ thống báo
động và an ninh; thiết bị tự động hóa công nghiệp; thiết bị tự động hóa gia đình; phụ kiện thông
minh; và các thiết bị y tế và thể dục. Chip silicon bao gồm 10 khu vực chính:

 Lõi và bộ nhớ: Vùng này bao gồm bộ xử lý Cortex-M3, bộ nhớ dữ liệu RAM tĩnh (SRAM),9 và bộ
nhớ flash " để lưu trữ các lệnh chương trình và dữ liệu ứng dụng không thay đổi. Bộ nhớ flash
không biến động (dữ liệu không bị mất khi tắt nguồn) và do đó lý tưởng cho mục đích này. SRAM
lưu trữ dữ liệu biến. Khu vực này cũng bao gồm một giao diện gỡ lỗi, giúp dễ dàng lập trình lại và
cập nhật hệ thống tại hiện trường.
9RAM tĩnh (SRAM) là một dạng bộ nhớ truy cập ngẫu nhiên được sử dụng cho bộ nhớ cache; xem
Chương 6.

Bộ nhớ flash ° là một dạng bộ nhớ linh hoạt được sử dụng cả trong vi điều khiển và làm bộ
1

nhớ ngoài; nó được thảo luận trong Chương 7.

 Cổng I/O song song: Có thể cấu hình cho nhiều sơ đồ I/O song song.
 Giao diện nối tiếp: Hỗ trợ các sơ đồ I/O nối tiếp khác nhau.
 Giao diện analog: Logic analog-to-digital và digital-to-analog để hỗ trợ các cảm biến và bộ truyền
động.
 Bộ hẹn giờ và kích hoạt: Theo dõi thời gian và đếm các sự kiện, tạo ra các dạng sóng đầu ra
và kích hoạt các hành động theo thời gian trong các thiết bị ngoại vi khác.
 Quản lý đồng hồ: Điều khiển đồng hồ và bộ dao động trên chip. Nhiều đồng hồ và bộ dao động
được sử dụng để giảm thiểu mức tiêu thụ điện năng và cung cấp thời gian khởi động ngắn.
 Quản lý năng lượng: Quản lý các chế độ hoạt động năng lượng thấp khác nhau của bộ xử lý và
thiết bị ngoại vi để cung cấp khả năng quản lý nhu cầu năng lượng theo thời gian thực để giảm
thiểu mức tiêu thụ năng lượng.
 Bảo mật: Chip bao gồm việc triển khai phần cứng của Tiêu chuẩn mã hóa nâng cao (AES).
 Bus 32 bit: Kết nối tất cả các thành phần trên chip.
 Bus ngoại vi: Một mạng cho phép các mô-đun ngoại vi khác nhau giao tiếp trực tiếp với nhau
mà không liên quan đến bộ xử lý. Điều này hỗ trợ hoạt động quan trọng về thời gian và giảm chi
phí phần mềm.
So sánh Hình 1.16 với Hình 1.2, bạn sẽ thấy nhiều điểm tương đồng và cấu trúc phân cấp chung
giống nhau. Tuy nhiên, lưu ý rằng cấp cao nhất của hệ thống máy tính vi điều khiển là một chip đơn,
trong khi đối với máy tính đa lõi, cấp cao nhất là bo mạch chủ chứa một số chip. Một điểm khác biệt
đáng chú ý khác là không có bộ nhớ cache, trong bộ xử lý Cortex-M3 hoặc trong toàn bộ vi điều
khiển, đóng một vai trò quan trọng nếu mã hoặc dữ liệu nằm trong bộ nhớ ngoài. Mặc dù số chu kỳ
để đọc hướng dẫn hoặc dữ liệu khác nhau tùy thuộc vào bộ nhớ cache bị lỗi hoặc bị lỗi, bộ nhớ
cache cải thiện đáng kể hiệu suất khi sử dụng bộ nhớ ngoài. Chi phí như vậy là không cần thiết cho
một vi điều khiển.
1.8 Các thuật ngữ chính, câu hỏi đánh giá và
vấn đề

Thuật ngữ chủ chốt

bộ xử lý ứng dụng
đơn vị số học và logic (ALU)
trên
Khối xử lý trung tâm, con chíp
vỏ bào, mảnh vỡ, chỗ sứt, mẻ
kiến trúc máy tính
TỔ CHỨC MÁY TÍNH VÀ
Hộp điều khiển
nòng cốt, hạt nhân
bộ xử lý chuyên dụng
hệ thống nhúng sâu
Embedded System
cổng
đầu vào-đầu ra (I/O)
kiến trúc tập lệnh (ISA)
mạch tích hợp
Intel x86
Internet kết nối vạn vật
Bộ nhớ
Tế bào ghi nhớ
đơn vị quản lý bộ nhớ (MMU)
Bộ phận bảo vệ bộ nhớ
Vi điều khiển
vi điện tử học
bộ vi xử lý
Bo mạch chủ
mô-đun đa chip (MCM)
đa lõi
bộ xử lý đa lõi
bảng mạch in

thanh ghi bộ xử lý

bán dẫn
bộ nhớ bằng chất bán dẫn
bus hệ thống
kết nối hệ thống
Tranzito

Review Questions

1.1 Điều gì, nói chung, là sự khác biệt giữa tổ chức máy tính và máy tính
Ngành kiến trúc
1.2 Nói chung, sự khác biệt giữa cấu trúc máy tính và máy tính
chức năng
1.3 Bốn chức năng chính của máy tính là gì?
1.4 Liệt kê và xác định ngắn gọn các thành phần cấu trúc chính của máy tính.
1.5 Liệt kê và xác định ngắn gọn các thành phần cấu trúc chính của bộ xử lý.
1.6 Máy tính chương trình được lưu trữ là gì?
1.7 Giải thích định luật Moore.
1.8 Đặc điểm phân biệt chính của bộ vi xử lý là gì?

Các vấn
đề
e kết quả của phương trình sau.
1.1 Bạn phải viết một chương trình IAS để tính toán X
Y X 1.

Giả sử rằng tính toán không dẫn đến tràn số học và X, Y và N là


số nguyên dương với N> 1. Lưu ý: IAS không có ngôn ngữ lắp ráp, chỉ có máy
ngôn ngữ. N(N + 1)
a. Sử dụng phương trình Sum(Y)= 2 khi viết chương trình IAS.
b. Làm điều đó một cách "khó khăn", mà không cần sử dụng phương trình từ phần (a).

1.2
a. Trên IAS, lệnh mã máy sẽ trông như thế nào để tải nội dung của địa chỉ bộ nhớ 2
vào bộ tích lũy?
b. CPU cần thực hiện bao nhiêu chuyến đi đến bộ nhớ để hoàn thành hướng dẫn
này trong chu kỳ hướng dẫn?

1.3 Về IAS, mô tả bằng tiếng Anh quá trình mà CPU phải thực hiện để đọc một giá trị
từ bộ nhớ và để ghi một giá trị vào bộ nhớ về những gì được đưa vào MAR, MBR, bus
địa chỉ, bus dữ liệu và bus điều khiển.
1.4 Với nội dung bộ nhớ của máy tính IAS được hiển thị bên dưới,
Địa chỉ
Nội dung
08A 010FA210FB

08B 010FA0F08D

08C 020FA210FB

hiển thị mã ngôn ngữ lắp ráp cho chương trình, bắt đầu từ địa chỉ 08A. Giải thích chức
năng của chương trình này.
1.5 Trong Hình 1.6, chỉ ra chiều rộng, tính bằng bit, của mỗi đường dẫn dữ liệu (ví dụ:
giữa AC và ALU). 1.6 Trong IBM 360 Models 65 và 75, các địa chỉ được đặt so le trong
hai đơn vị bộ nhớ chính riêng biệt (ví dụ: tất cả các từ được đánh số chẵn trong một
đơn vị và tất cả các từ được đánh số lẻ trong một đơn vị khác). Mục đích của kỹ thuật
này là gì?
1.7 Hiệu suất tương đối của IBM 360 Model 75 gấp 50 lần so với 360 Model 30, nhưng
thời gian chu kỳ hướng dẫn chỉ nhanh gấp 5 lần. Bạn giải thích sự khác biệt này như thế
nào? 1.8 Trong khi duyệt web tại cửa hàng máy tính của Billy Bob, bạn tình cờ nghe thấy
một khách hàng hỏi Billy Bob máy tính nhanh nhất trong cửa hàng mà anh ta có thể mua
là gì. Billy Bob trả lời, "Bạn đang nhìn vào Macintosh của chúng tôi. Máy Mac nhanh
nhất mà chúng tôi có chạy ở tốc độ xung nhịp 1,2 GHz. Nếu bạn thực sự muốn có chiếc
máy nhanh nhất, bạn nên mua Intel Pentium IV 2.4 GHz của chúng tôi thay thế." Billy
Bob có đúng không? Bạn sẽ nói gì để giúp khách hàng này?
1.9 ENIAC, tiền thân của máy ISA, là một máy thập phân, trong đó mỗi thanh ghi được
thể hiện bằng một vòng gồm 10 ống chân không. Bất cứ lúc nào, chỉ có một ống chân
không ở trạng thái bật, đại diện cho một trong 10 chữ số thập phân. Giả sử rằng ENIAC
có khả năng có nhiều ống chân không ở trạng thái bật và TẮT đồng thời, tại sao biểu
diễn này "lãng phí" và chúng ta có thể biểu diễn phạm vi giá trị số nguyên nào bằng
cách sử dụng 10 ống chân không? 1.10 Đối với mỗi ví dụ sau, hãy xác định xem đây có
phải là một hệ thống nhúng hay không, giải thích tại sao có hoặc tại sao không.
a. Các chương trình hiểu vật lý và/hoặc phần cứng có được nhúng không? Ví dụ,
một phương pháp sử dụng các phần tử hữu hạn để dự đoán dòng chất lỏng
trên cánh máy bay?
b. Bộ vi xử lý bên trong điều khiển ổ đĩa có phải là một ví dụ về hệ thống
nhúng không?
c. Trình điều khiển I/O điều khiển phần cứng, vậy sự hiện diện của trình điều
khiển I/O có ngụ ý rằng máy tính thực thi trình điều khiển được nhúng
không?
d. PDA (Trợ lý kỹ thuật số cá nhân) có phải là một hệ thống nhúng không?
e. Bộ vi xử lý điều khiển điện thoại di động có phải là một hệ thống nhúng không?
f. Các máy tính trong một radar mảng pha lớn có được coi là được nhúng không?
Những radar này là các tòa nhà 10 tầng với một đến ba bản vá bức xạ đường
kính 100 feet ở hai bên dốc của tòa nhà.
g. Hệ thống quản lý bay truyền thống (FMS) có được tích hợp trong buồng lái máy
bay không?
h. Các máy tính trong trình mô phỏng phần cứng trong vòng lặp (HIL) có được nhúng
không?
i. Máy tính điều khiển máy tạo nhịp tim trong ngực của một người có phải là máy
tính nhúng không?
j. Máy tính có điều khiển phun nhiên liệu trong động cơ ô tô không?

You might also like