Máy tính vạn năng là máy tính có cấu hình để thực hiện những chức năng chungchung, thường chạy hệ điều hành chung như windows, ubuntu…Máy tính chuyên dụng là máy tính mà cả phần cứng lẫn
Trang 1Câu 1: Hệ nhúng là gì? Hãy nêu các ví dụ (Embedded System)
- Hệ nhúng là sự kết hợp của phần cứng, phần mềm máy tính và một số thành phần
cơ khí khác để thực hiện một hoặc một nhóm chức năng chuyên biệt
- Được cài đặt trong các hệ thống lớn hơn
Ví dụ: thiết bị truyền thông, thiết bị đo lường, điều khiển, lò vi sóng, máy giặt
Câu 2: Hệ thời gian thực là gì? Hãy nêu các ví dụ (Real Time)
- Hệ thời gian thực là hệ thống có khả năng tính toán hoặc đưa ra quyết định, kếtquả trong một khoảng thời gian nhất định biết trước
- Có hai loại hệ thống thời gian thực:
+ Hệ thống thời gian thực cứng (Hard Real Time): bắt buộc phải cho ra kết quảtrong thời gian nhất định vì nếu vi phạm sẽ dẫn đến hoạt động của toàn hệ thống bị saihoặc bị phá hủy VD như lò phản ứng hạt nhân, hệ thống tên lửa…
+ Hệ thống thời gian thực mềm (Soft Real Time): cho ra kết quả trong khoảng sai
số thời gian chấp nhận được mà hệ thống vẫn có thể hoạt động và chấp nhận được
(VD như hệ thống phát thanh truyền hình, nếu thông tin truyền từ trạm phát đếnngười nghe vài giây thì không ảnh hưởng đến tính thời sự của tin truyền đi và người nghechấp nhận được)
Câu 3: Hệ nhúng thời gian thực là gì? Hãy nêu các ví dụ.
Hệ nhúng thời gian thực là hệ thống xử lý thông tin nhúng trong các hệ thống lớn
sử dụng thời gian thực
Ví dụ: hệ điều khiển của máy giặt…
Câu 4: Phần mềm nhúng là gì? Hãy nêu các ví dụ.
Ví dụ: Phần mềm nghe nhạc trên adroid
Câu 5: Sự khác nhau giữa máy tính vạn năng và máy tính chuyên dụng (trong hệ nhúng)?
Trang 2Máy tính vạn năng là máy tính có cấu hình để thực hiện những chức năng chungchung, thường chạy hệ điều hành chung như windows, ubuntu…
Máy tính chuyên dụng là máy tính mà cả phần cứng lẫn phần mềm đều nhằm phục
vụ những mục đích nhất định có thể có các cổng vào ra đặc biệt để giao tiếp với ngoại vicủa riêng, nó có các hệ điều hành hoặc các phần mềm chuyên dụng như phần mềm nhúng,
nó được customize để loại bỏ đi những thành phần ko cần thiết với mục đích để cho diệntích nhỏ gọn, cũng như giảm giá thành và tăng hiệu năng và nó cũng được tích hợp cácphần cứng chuyên dụng khác như các I/O vào ra
Câu 6: So sánh cơ chế hoạt động của máy vi tính và của máy tính hệ nhúng?
Giống nhau: Đều có cấu trúc và thành phần của một máy vi tính:
A.Cấu trúc máy tính:
Về cơ bản tất cả các hệ thống máy tính đều có các bộ phận cơ bản sau :
- CPU : Bộ xử lý trung tâm
- Bộ nhớ trong : ROM& RAM
- Bộ nhớ ngoài : Backing Storage
- Các thiết bị nhập :Input Unit
- Các thiết bị xuất : Output Unit
1 Bộ xử lý trung tâm CPU.
Đây là bộ não của máy tính, nó thực hiện hầu hết các phép toán số học và logic CPUđược chia làm các bộ phận sau :
a, Khối xử lý các phép toán số học và logic (ALU-Athimetic Logic Unit):
Thực hiện các phép toán số học, phép toán so sánh, phép toán logic
b, Khối điều khiển : (CU- Control Unit ).
- Khối này có chức năng thực hiện tuần tự các phép tính
2 Bộ nhớ trong (ROM&RAM).
Được chia làm các ô nhớ hình mắt lưới Mỗi ô nhớ có dung lượng 1 byte và đượcdùng để lưu trữ 1 ký tự Bô nhớ trong được chia làm 2 loại như sau :
a, Bộ nhớ chỉ đọc ROM.
Đây là bộ nhớ được các nhà sản xuất máy tính thiết lập ra Người sử dụng chỉ có thể
sử dụng dữ liệu trong bộ nhớ này chứ không thể thay đổi được dữ liệu trong nó Khi tắtmáy hoặc mất điện dữ liệu trong ROM không bị mất đi
VD: Bios ROM Basic Input Output System Read Only Memmory ): Bộ nhớ chỉ đọcđiều khiển các thiết bị vào ra cơ bản của hệ thống máy tính
b, Bộ nhớ truy cập ngẫu nhiên RAM.
Trang 3Người sử dụng có thể hoàn toàn thay đổi được dữ liệu bên trong bộ nhớ này nhưngkhi mất điện hoặc tắt máy dữ liệu trong RAM sẽ bị mất đi.
4 Các thiết bị nhập:
Là những thiết bị dùng để nhập dữ liệ vào máy tính (vd: Key , Mouse, Webcam, )
5 Các thiết bị xuất :
Là các thiết bị dùng để xuất dữ liệu ra ngoài sau khi đã đựợc xử lý (vd: Màn hình,Máy in , )
-Hệ điều hành: Operating System: Là phần mềm để khởi động máy tính, kết nối cácthiết bị ngoại vi và còn là môi trường để các phần mềm khác chạy trong nó
-Các ngôn ngữ lập trình : Progamming langueges: Đây là những phần mềm để tạo ranhững phần mềm kể trên, có 2 loại ngôn ngữ lập trình
+ Low level langueges : Ngôn ngữ lập trình bậc thấp
+ High Level : Ngôn ngữ lập trình bậc cao
c Firmware: Là phần để kết nối giữa phần cứng và phần mềm (vd: CMOS)
Sự khác nhau:
Máy tính hệ nhúng khác với máy vi tính:
Trang 4Như hình trên ta thấy: Máy tính hệ nhúng là máy vi tính có thêm phần mềm nhúng
- Máy tính hệ nhúng có sự kết hợp phần cứng và phần mềm một cách tối ưu Có sốđặc trưng cơ bản của hệ nhúng ngoài tính chuyên dụng nó còn bị ràng buộc về hoạt độngtrong chế độ thời gian thực, hạn chế về bộ nhớ, năng lượng và giá thành mà lại đòi hỏihoạt động tin cậy và tiêu tốn ít năng lượng
- Ngoài ra máy tính hệ nhúng thường phải hoạt động trong môi trường khắc nghiệt
có độ nóng ẩm, rung xóc cao Ví dụ các hệ điều khiển các máy diesel cho tàu biển, cácthiết bị cảnh báo cháy nổ trong hầm lò,
Câu 7: Nêu sự đa dạng của máy vi tính và sự phổ dụng của máy tính hệ nhúng?
Sự đa dạng của máy vi tính:
- Hiện nay máy vi tính rất đa dạng, đã được sử dụng rộng rãi với rất nhiều loại máy vitính khác nhau, với thiết kế, xu hướng khác nhau như: theo mục đích sử dụng, theo cải tiếncông nghệ, theo đặc trưng thiết kế, theo khả năng lưu trữ, lập trình, các máy vi tính có mụcđích đặc biệt, theo hình thức hoạt động,
- Máy vi tính đa dụng được sử dụng để chạy hàng loạt chương trình và ứng dụng Ví dụphần mềm xử lí văn bản word, các chương trình bảng tính, các tiện ích của email hay cáctrò chơi máy tính có trên thị trường
Sự phổ dụng của máy tính hệ nhúng:
- Máy tính nhúng được thiết kế để thực hiện một ứng dụng cụ thể như giám sát cửa anninh, báo cáo tình trạng của cảm biến cho một hệ thống điều khiển hay quản lí đèn giaothông tại chỗ giao nhau đông người qua lại
- Ưu điểm khi sử dụng máy tính nhúng: giảm thiểu được chi phí, dễ dàng triển khai
Câu 8: Những đặc tính cơ bản của hệ nhúng và của phần mềm nhúng?
Trang 5* Các yếu tố đặc trưng của hệ thống nhúng
Các hệ thống nhúng đều có chung một số đặc điểm yêu cầu về khả năng thời gian thực, độtin cậy, tính độc lập và hiệu quả Các yêu cầu cơ bản :
- Khả năng độc lập và thông minh hóa : Điều này được chỉ rõ hơn thông qua một số cácthuộc tính yêu cầu, cụ thể như:
· Hiệu quả về thời gian thưc hiện
· Kích thước và khối lượng
· Giá thành
- Phân hoạch tác vụ và chức năng hóa : Các bộ vi xử lý trong các hệ nhúngthường được sử dụng để đảm nhiệm và thực hiện một hoặc một nhóm chức năng rất độclập và cũng đặc thù cho từng phần chức năng của hệ thống lớn mà nó được nhúng vào.Khảnăng này làm tăng thêm sự chuyên biệt hóa về chức năng của một hệ thống lớn và dể dànghơn cho quá trình xây dựng, vận hành và bảo trì
- Khả năng thời gian thực : Các hệ đều gắn liền với việc đảm nhiệm một chứcnăng chính và phải được thực hiện đúng theo một khung thời gian qui định Thông thườngmột chức năng của hệ thống phải được thực hiện và hoàn thành theo một yêu cầu thời gianđịnh trước để đảm bảo thông tin cập nhật kịp thời cho phần xử lý của các chức năng khác
và có thể ảnh hưởng trực tiếp tới sự hoạt động đúng và chính xác của toàn hệ thống
Đặc tính cơ bản của hệ nhúng:
- Các hệ thống nhúng được thiết kế để thực hiện một số nhiệm vụ chuyên dụng chứkhông phải đóng vai trò là hệ thống máy tính đa chức năng Một hệ thống đòi hỏi ràngbuộc về tính hoạt động thời gian thực để đảm bảo độ an toàn và tính ứng dụng Một số hệthống không đòi hỏi hoặc ràng buộc chặt chẽ, cho phép đơn giản hóa hệ thống phần cứng,
để giảm thiểu chi phí sản xuất
Trang 6- Thường thì các hệ thống nhúng được nối với môi trường vật lý qua các cảm biến đểthu thập thông tin từ môi trường đó và qua các bộ điều khiển/tác động để điều khiển môitrường
- Phần mềm được viết cho các hệ thống nhúng được gọi là firmware và được lưu trữtrong các chip bộ nhớ chỉ đọc (read-only memory) hoặc bộ nhớ flash chứ không phải làtrong một ổ đĩa Phần mềm thường chạy với số tài nguyên phần cứng hạn chế: không cóbàn phím, màn hình hoặc có nhưng vớ i kích thước nhỏ, bộ nhớ hạn chế
- Độ tin cậy: Tùy theo tính chất và yêu cầu, mức độ đáp ứng của hệ thống có thể phải làrất nhanh (ví dụ như hệ thống thắng trong xe hơi hoặc điều khiển thiết bị trong nhà máy),hoặc có thể chấp nhận một mức độ chậm trễ tương đối (ví dụ như điện thoại di động, máylạnh, ti-vi)
Đặc tính cơ bản của phần mềm nhúng:
- Có đặc trưng cơ bản của hệ nhúng
- Phát triển theo hướng chức năng hóa đặc thù
- Hạn chế về tài nguyên bộ nhớ
- Yêu cầu thời gian thực
Câu 9: Khái niệm hệ thời gian thực cứng, hệ thời gian thực mềm, hệ thời gian thực chắc? Hãy nêu các ví dụ.
+ Hệ thời gian thực cứng (Hard Real Time): hệ thống bắt buộc phải cho ra kết quảtrong thời gian nhất định vì nếu vi phạm về thời gian sẽ dẫn đến hoạt động của toàn hệthống bị sai hoặc bị phá hủy VD như lò phản ứng hạt nhân, hệ thống tên lửa…
+ Hệ thời gian thực mềm (Soft Real Time): hệ thống cho ra kết quả trong khoảngsai số thời gian chấp nhận được mà hệ thống vẫn có thể hoạt động và chấp nhận được
+ Hệ thời gian thực chắc:
Câu 10: Những vấn đề trong thiết kế hệ thời gian thực?
Một hệ thống thời gian thực (RTS – Realtime Systems) có thể được hiểu như là một
mô hình xử lý mà tính đúng đắn của hệ thống không chỉ phụ thuộc vào kết quả tính toánlôgic mà còn phụ thuộc vào thời gian mà kết quả này phát sinh ra
Thông thường, mỗi RTS thường được thiết kế dựa trên một số hệ thống chuẩn Có ba dạngchuẩn thường gặp là :
Trang 7- Các hệ thống giám sát (Monitoring system)
- Các hệ thống kiểm soát (Control system)
- Các hệ thống thu thập dữ liệu (Data accquistion system)
Xây dựng một RTS cũng bắt đầu bằng giai đoạn xác định yêu cầu, sau đó là các giaiđoạn phân tích, thiết kế, cài đặt, kiểm tra… Các giai đoạn này có thể là tổng quan hay là đivào chi tiết, có thể phân thành các giai đoạn con Các giai đoạn có thể gối chồng lên nhau.Xác định Phân tích Thiết kế Cài đặt Kiểm tra Nghiệm thu Khai thác & bảo trì Hình 4 : Môhình thác nước các giai đoạn xây dựng phần mềm
Trong quá trình thiết kế cần có sự mềm dẻo, không đi quá sau vào chi tiết đặt biệt là cácchi tiết về kỹ thuật, phần cứng Sự phân định giữa phần cứng và phần mềm càng trì hoãntrong giai đoạn thiết kế càng tốt Song song với các giai đoạn là việc tổ chức tài liệu kỹthuật của giai đoạn đó Việc làm này cần thiết cho các giai đoạn khác trong toàn bộ quátrình Trong quá trình xây dựng một ứng dụng thời gian thực thì các giai đoạn phân tích vàthiết kế có tính chất quan trọng đặt biệt, giai đoạn này bao gồm cả việc xác định các ràngbuộc về thời gian Giai đoạn này cần phải:
- Xác định các nhân bên ngoài ảnh hưởng đến hệ thống
- Xác định cách trả lời của hệ thống cho các tác nhân đó
- Xác định các ràng buộc thời gian ứng dụng phải đáp ứng Theo DART – DesignApproach for Realtime System (được phát triển bởi General Electric), trong RTS thìkhông phải công việc nào cũng đòi hỏi thời gian thực, mổi công việc tương ứng vớinhững chức năng cụ thể, được phân thành các nhóm sau :
Trang 8 Phụ thuộc nhập xuất (I/O dependency): Thường thì tốc độ thực hiện trên các thiết bịchậm hơn rất nhiều so với tốc độ xử lý của CPU, những công việc liên quan đếnnhập xuất trên các thiết bị này thường được phân vào một nhóm
Ràng buộc thời gian (Time-critical): Nhóm công việc có ràng buộc thời gian thựcthi, yêu cầu quyền ưu tiên cao được phân vào một nhóm
Thực thi theo định kỳ (Periodic execution): Nhóm công việc yêu cầu thực hiện theomột chu kỳ chỉ định
Yêu cầu tính toán (Computational requirements): Những công việc có nhu cầu tínhtoán cao được phân thành một nhóm
- Thích nghi với môi trường mới
Tính mang chuyển được
Tính sử dụng lại được
Tính liên tác được
Câu 12: Phát triển phần mềm nhúng ở Việt Nam?
Hiện nay, lĩnh vực hệ thống nhúng tại Việt Nam mới chỉ có những bước đi chậpchững ban đầu, với rất ít sản phẩm “Made in Vietnam” có thể ứng dụng vào thực tế Côngviệc chủ yếu vẫn là gia công phần mềm cho nước ngoài, trong đó chiếm tỷ lệ lớn nhất làcác thị trường Nhật, Mỹ và châu Âu Rất nhiều hãng sản xuất phần mềm lớn đã và đang
“đổ bộ” vào thị trường Việt Nam để tận dụng lợi thế nguồn nhân lực giá rẻ và khai thácmột thị trường tiềm năng mới như IBM, CSC, Altera…
Trang 9Tuy nhiên, Việt Nam hiện đang đối đầu với một thách thức lớn, đó là “đầu vào” củanguồn nhân lực cho thị trường phần mềm nói chung và phần mềm cho hệ thống nhúng nóiriêng Ngành gia công phần mềm cho hệ thống nhúng, một nhân viên mới cần ít nhất sáutháng đến một năm để có thể bắt đầu làm việc có hiệu quả, và từ hai đến ba năm mới có thểlàm việc thành thạo Việc tuyển người và đào tạo đã khó, việc giữ người lại càng khó hơn Đặc thù của ngành này là đòi hỏi nhân viên phải có sự kiên trì và bền bỉ để nắm bắt nhữngkiến thức cần thiết, đồng thời cần một thời gian khá dài mới có thể thấy được thành quả.
Đó là lý do tỷ lệ chuyển và nghỉ việc trong lĩnh vực này là khá cao, trung bình 12-20% Một điểm yếu khác góp phần làm hạn chế sự phát triển của ngành gia công phần mềm tạiViệt Nam chính là nhân viên thiếu khả năng giao tiếp bằng tiếng Anh và các kỹ năng mềmnhư khả năng thuyết trình, làm việc theo nhóm, quản lý thời gian… Như trên đã nói, cácnhân viên trong ngành hệ thống nhúng cần phải có sự giao tiếp chặt chẽ với khách hàng vàcác nhóm làm việc nước ngoài khác
Muốn phát triển ngành phần mềm hệ thống nhúng lên một tầm cao mới như có thểsản xuất, ứng dụng thực tế và xuất khẩu phần mềm nhúng của Việt Nam, điều tiên quyết làphải tập trung phát triển lĩnh vực nghiên cứu và phát triển (R&D) Hiện nay chúng ta đã cómột số chương trình hợp tác với các hãng lớn ở nước ngoài như Toshiba, Panasonic,STMicroelectronics, Samsung…(5) để phát triển theo hướng này
Tuy nhiên, những chương trình như thế vẫn còn rất hạn chế và không có một định hướngchiến lược chung Việt Nam cần phải đẩy mạnh hơn nữa vấn đề định hướng nghiên cứu vàphát triển cho ngành hệ thống nhúng từ trong trường đại học và các trung tâm nghiên cứu,cũng như trang bị được những kiến thức tổng quát về lĩnh vực này cho những sinh viên trẻ,đáp ứng được nhu cầu ngày càng cao của nhà tuyển dụng
Trong tương lai, nếu Việt Nam muốn nâng cao khả năng cạnh tranh với các nướcchuyên gia công phần mềm lớn khác như Trung Quốc, Ấn Độ…, cần phải tập trung giảiquyết bài toán tăng cường tính hiệu quả của nguồn nhân lực, phát triển tập trung theo chiềusâu thay vì chiều rộng như hiện nay Trình độ chuyên môn của chúng ta trong lĩnh vựcphần mềm nhúng hiện nay là tương đối “chắp vá” theo kiểu chỉ đâu làm đó, thiếu sự đầu tư
và chiến lược phát triển hợp lý
Chúng ta cần có thêm nhiều chương trình đào tạo chuyên ngành về hệ thống nhúng
từ trong trường đại học và các cơ sở đào tạo chính quy Đồng thời, mở rộng cửa đón cácnhà đầu tư để học hỏi những kỹ thuật mới và chuyển giao công nghệ, nhưng quá trình nàyphải thực hiện một cách có chọn lọc và kiểm soát, tránh tình trạng biến Việt Nam thành
“bãi đáp” tiếp nhận những công nghệ lỗi thời như ở một số ngành công nghiệp khác
Trang 10Câu 13: Phát triển hệ nhúng thời gian thực ở Việt Nam?
Câu 14: Khái niệm về chip và bo mạch in?
a Khái niệm chip
- Là một mạch điện tử tích hợp được cấu tạo để thực hiện một chức năng cụ thể nào
đó Là một mẩu nhỏ vật liệu bán dẫn (hiện thường sử dụng silicon) có nhúng trên đó mộtmạch tích hợp (integrated circuit) Một con chíp điển hình nhỏ chưa tới 1,6 cm vuôngnhưng có thể chứa tới hàng triệu thành phần điện tử (tức transitor) Các công nghệ và vậtliệu sản xuất mới giúp kích thước và trọng lượng của con chíp ngày càng thêm nhỏ, thêmnhẹ Với công nghệ sản xuất 0,13-micron, một con chíp GPU NVIDIA GeForce 6800 Ultrachứa tới 222 triệu transistor
- Có những loại chíp khác nhau Thí dụ, chíp CPU (bộ vi xử lý) chứa đựng toàn bộmột đơn vị xử lý, trong khi chíp bộ nhớ chỉ chứa bộ nhớ trống rỗng
Chíp hiện được đóng gói với nhiều dạng khác nhau Ba kiểu đóng gói chính là:
- DIP (Dual In-Line Package): Kiểu đóng gói hàng đôi này có ở các con chíp dạng “bọ”(bug) truyền thống, với 8 tới 40 chân được xếp thành hai hàng
- SIP (Single In-Line Package): Đóng gói hàng đơn này với các chân cắm chạy thànhmột hàng như một cây lược
- PGA (Pin-Grid Array): Kiểu đóng gói chân sắp xếp thành vỉ như lưới này được dùngcho những con chíp hình vuông với các chân cắm được bố trí trong những ô vuôngđồng tâm Ngoài loại CPGA (Ceramic Pin Grid Array) với chân đế bằng sứ trước đây,người ta hiện đang sử dụng loại PPGA (Plastic Pin Grid Array) với chân đế bằngnhựa
b. Khái niệm bo mạch in.
- Bo mạch chủ là một bảng mạch in (PCB: Printed Cricus Board) đóng vai trò làtrung gian giao tiếp giữa các thiết thiết bị được gắn trên nó theo cách trực tiếp hoặc thôngqua đầu cắm hoặc dây dẫn Thông qua bo mạch chủ, các linh kiện mới có thể hoạt động vàgiao tiếp với nhau Thực chất mainboard được coi như một "bo mạch chủ" cung cấp kết nốivật lý bao gồm khe cắm, mạch điện Còn lại, việc kết nối và điều khiển là do cặp Chip cầubắc và nam, đây chính là trung tâm điều phối hoạt động của PC
- Bảng mạch in (tiếng Anh: printed circuit board - PCB) là nơi để hàn và nối các linhkiện điện tử để tạo thành bo mạch Mạch in có thể được thiết kế, lập trình trên máy tính vớicác loại mạch ứng dụng Mạch in gồm có: miếng fip được mạ lên những vi mạch bằngđồng và các lỗ khoan để gắn hàn chân linh kiện
Trang 11- Bảng mạch in dược cấu tạo các lớp sợi thủy tinh (fiber –glass) Các lớp này đượcbao bởi Các ổ cắm (sockets)và nhiều pầhn điện tử khác ,bao gồm các loại chip khácnhau.Một chíp được tạo ra từ bo mạch nhỏ được khắc axit lên một ô vuông silicon –chấtliệu có cấu trúc hóa học gần giống như cát Chip co nhiều kích cỡ khác nhau,nhưng phầnlớn là bằng con tem thư Một con chip cũng được coi như là một chíp bán dẫn(simiconducter) hay vi mạch tích hợp (intergated circuit).
Câu 15: Khái niệm về bộ vi xử lý?
- Một bộ vi xử lý là một mạch tích hợp chứa hàng ngàn, thậm chí hàng triệutransistor (LSI, VLSI) được kết nối với nhau
- Các transistor ấy cùng nhau làm việc để lưu trữ và xử lý dữ liệu cho phép bộ vi xử
lý có thể thực hiện rất nhiều chức năng hữu ích
- Chức năng cụ thể của một vi xử lý được xác định bằng phần mềm (có thể lập trìnhđược)
Câu 16: Các thành phần của một bộ vi xử lý?
ALU
- Thực hiện các phép toán logic (AND, OR, XOR, NOT) và các phép toán số học(cộng, trừ, nhân, chia)
- Thực hiện việc chuyển dữ liệu
- Việc thực hiện lệnh thực sự diễn ra ở ALU
Control Unit
- Có trách nhiệm liên quan đến việc tìm và thực hiện các lệnh bằng cách cung cấpcác tìn hiệu điều khiển và định thời cho ALU và các mạch khác biết phải làm gì và làm thếnào
Các thanh ghi
- Thanh ghi là nơi mà bộ vi xử lý có thể lưu trữ được một số nhị phân (kích cỡ củathanh ghi tính bằng bit)
Trang 12- Bộ vi xử lý dùng các thanh ghi để lưu trữ dữ liệu tạm thời trong quá trình thực hiệnchương trình
- Các thanh ghi có thể được truy cập bằng các câu lệnh ngôn ngữ máy thường đượcgọi là các thanh ghi người sử dụng có thể nhìn thấy được (có thể truy cập được)
- Các thanh ghi điều khiển và các thanh ghi trạng thái được CU dùng để điều khiểnviệc thực hiện chương trinh Đa số các thanh ghi này người sử dụng không thể nhìn thấyđược
Câu 17: Tập lệnh là gì? Quan hệ giữa tập lệnh và kiến trúc máy tính?
- Mã lệnh: chức năng của thao tác
- Dẫn hướng biên dịch: toán tử chứa toán tử giả(pseudo_op), các toán tử giả nàykhông được dịch sang mã máy mà chỉ báo cho chương trình dịch làm việc gì đó.Toán hạng:
- Toán hạng: xác định dữ liệu sẽ được thao tác
- Toán hạng: đích, nguồn
b Quan hệ giữa tập lệnh và kiến trúc máy tính?
Hầu hết các máy tính hiện nay gồm 6 cấp:
Trang 13- Cấp 0 chính là phần cứng của máy tính Các mạch điện tử của cấp này sẽ thực thicác chương trình ngôn ngữ máy của cấp 1 Trong cấp logic số, đối tượng quan tâm là cáccổng logic Các cổng này được xây dựng từ một nhóm các transistor
- Cấp 1 là cấp ngôn ngữ máy thật sự Cấp này có một chương trình gọi là vichương trình (microprogram), vi chương trình có nhiệm vụ thông dịch các chỉ thị của cấp
2 Hầu hết các lệnh trong cấp này là di chuyển dữ liệu từ phần này đến phần khác của máyhay thực hiện việc một số kiểm tra đơn giản
- Mỗi máy cấp 1 có một hay nhiều vi chương trình chạy trên chúng Mỗi vi chươngtrình xác định một ngôn ngữ cấp 2 Các máy cấp 2 đều có nhiều điểm chung ngay cả cácmáy cấp 2 của các hãng sản xuất khác nhau Các lệnh tên máy cấp 2 được thực thi bằngcách thông dịch bởi vi chương trình mà không phải thực thi trực tiếp bằng phần cứng
- Cấp 3 thường là cấp hỗn hợp hầu hết các lệnh trong ngôn ngữ của cấp máy nàycũng có trong ngôn ngữ cấp 2 và đồng thời có thêm một tập lệnh mới, một tổ chức bộ nhớkhác và khả năng chạy 2 hay nhiều chương trình song song Các lệnh mới thêm vào sẽđược thực thi bằng một trình thông dịch chạy trên cấp 2, gọi là hệ điều hành Nhiều lệnhcấp 3 được thực thi trực tiếp do vi chương trình và một số lệnh khác được thông dịch bằng
hệ điều hành (do đó cấp này là cấp hỗn hợp)
- Cấp 4 thực sự là dạng tượng trừng cho một trong các ngôn ngữ cấp này cung cấpmột phương pháp viết chương trình cho các cấp 1,2,3 dễ dàng hơn Các chương trình viếtbằng hợp ngữ được dịch sang các ngôn ngữ của cấp 1,2,3 và sau đó được thông dịch bằngcác máy ảo hay thực tương ứng
Trang 14- Cấp 5 bao gồm các ngôn ngữ được thiết kế cho người lập trình nhằm giải quyếtmột vấn đề cụ thể Các ngôn ngữ này được gọi là cấp cao Một ngôn ngữ cấp cao nhưBasic, C, cobol, pascal và các ngôn ngữ lập trình hướng đối tượng c++, các chương trìnhviết bằng các ngôn ngữ này thường được dịch sang cấp 3 hay 4 bằng các trình biên dịch(compiler).
Câu 18: Kiến trúc máy tính RISC? Kiến trúc máy tính CISC?
KIẾN TRÚC RISC ( REDUCED INSTRUCTION SET COMPUTER)
Mục tiêu của RISC chính là đơn giản hóa các lệnh, để mỗi lệnh có thể được thực
thi chỉ trong 1 chu kỳ máy Việc tập trung đơn giản hóa các lệnh đã cho ra đời các loại
"Máy tính với tập lệnh được đơn giản hóa" – RISC
Các kiến trúc với tập lệnh phức tạp CISC (Complex Instruction Set Computer)được nghĩ ra từ những năm 1960 Vào thời kỳ này, người ta nhận thấy các chương trìnhdịch khó dùng các thanh ghi, rằng các vi lệnh được thực hiện nhanh hơn các lệnh và cầnthiết phải làm giảm độ dài các chương trình Các đặc tính nầy khiến người ta ưu tiên chọncác kiểu ô nhớ - ô nhớ và ô nhớ - thanh ghi, với những lệnh phức tạp và dùng nhiều kiểuđịnh vị Điều này dẫn tới việc các lệnh có chiều dài thay đổi và nhưthế thì dùng bộ điềukhiển vi chương trình là hiệu quả nhất
Bảng II.6 cho các đặc tính của vài máy CISC tiêu biểu Ta nhận thấy cả ba máyđều có điểm chung là có nhiều lệnh, các lệnh có chiều dài thay đổi Nhiều cách thực hiệnlệnh và nhiều vi chương trình được dùng
Tiến bộ trong lãnh vực mạch kết (IC) và kỹ thuật dịch chương trình làm cho cácnhận định trước đây phải được xem xét lại, nhất là khi đã có một khảo sát định lượng vềviệc dùng tập lệnh các máy CISC
Đặc tính của một vài máy CISC
Trang 15Ví dụ, chương trình dịch đã biết sử dụng các thanh ghi và không có sự khác biệtđáng kể nào khi sử dụng ô nhớ cho các vi chương trình hay ô nhớ cho các chương trình.Điều này dẫn tới việc đưa vào khái niệm về một máy tính với tập lệnh rút gọn RISC vàođầu những năm 1980 Các máy RISC dựa chủ yếu trên một tập lệnh cho phép thực hiện kỹthuật ống dẫn một cách thích hợp nhất bằng cách thiết kế các lệnh có chiều dài cố định, códạng đơn giản, dễ giải mã Máy RISC dùng kiểu thực hiện lệnh 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 II.7 diễn tả bamẫu máy RISC đầu tiên: mẫu máy của IBM (IBM 801) của Berkeley (RISC1 củaPatterson) và của Stanford (MIPS của Hennessy) Ta nhận thấy cả ba máy đó đề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 các lệnh cố định(32 bits), có một kiểu thi hành lệnh (kiểu thanh ghi - thanh ghi) và chỉ có một số ít lệnh
Đặ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 vilệ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 :
- Diện tích của bộ xử lý dùng cho bộ điều khiển giảm từ 60% (cho các bộ xử lýCISC) xuống còn 10% (cho các bộ xử lý RISC) Như vậy có thể tích hợp thêm vào bêntrong bộ xử lý các thanh ghi, các cổng vào ra và bộ nhớ cache
Trang 16- Tốc độ tính toán cao nhờ vào việc giải mã lệnh đơn giản, nhờ có nhiều thanh ghi(ít thâm nhập bộ nhớ), và nhờ thực hiện kỹ thuật ống dẫn liên tục và có hiệu quả(các lệnhđều có thời gian thực hiện giống nhau và có cùng dạ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ảmchi 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à tagặ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ácnguyên nhân sau :
- Cấm thâm nhập bộ nhớ đối với tất cả các lệnh ngoại trừ các lệnh đọc và ghi vào
bộ nhớ Do đó ta buộc phải dùng nhiều lệnh để làm một công việc nhất định
- Cần thiết phải tính các địa chỉ hiệu dụng vì không có nhiều cách định vị
- Tập lệnh có ít lệnh nên các lệnh không có sẵn phải được thay thế bằng mộtchuỗi lệnh của bộ xử lý RISC
Các chương trình dịch gặp nhiều khó khăn vì có ít lệnh làm cho có ít lựa chọn để diễndị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âykhó khăn
Có ít lệnh trợ giúp cho ngôn ngữ cấp cao
Các bộ xử lý CISC trợ giúp mạnh hơn các ngôn ngữ cao cấp nhờ có tập lệnh phức tạp.Hãng Honeywell đã chế tạo một máy có một lệnh cho mỗi động từ của ngôn ngữ 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ạ
KIẾN TRÚC CISC (COMPLEX INSTRUCTION SET COMPUTERS)
vi xử lý CISC bao gồm số lượng lớn các lệnh và nhiều chế độ địa chỉ mà nhiều kiểu rất ítđược sử dụng với RISC hầu hết các lệnh đều có thể truy nhập bộ nhớ trong khi đó RISCchỉ có các lệnh nạp và lưu Do tập lệnh phức tạp, CISC cần đơn vị điều khiển phức tạp và
vi chương trình Trong khi đó, RISC sử dụng bộ điều khiển kết nối cứng nên nhanh hơn.Kiến trúc CISC khó triển khai kỹ thuật đường ống
Điểm khác biệt thực sự giữa RISC so với CISC là nguyên tắc thực hiện mọi thứ
trong các thanh ghi, đọc và lưu dữ liệu vào các thanh ghi
Ưu điểm của CISC là các chương trình phức tạp có thể chỉ cần vài lệnh với vài chutrình nạp còn RISC cần một số lượng lớn các lệnh để thực hiện nhiệm vụ tuy nhiên, RISC
Trang 17có thể cải thiện hiệu năng đáng kể nhờ xung nhịp nhanh hơn, kỹ thuật đường ống và tối ưuhóa quá trình biên dịch Hiện nay các vi xử lý CISC sư dụng pp lai, với các lệnh đơn giảnCISC sư dụng cách tiếp cận của RISC để thực thi xen kẽ (kỹ thuật ống) với các câu lệnhphức tạp sử dụng các vi chương trình để đảm bảo tính tương thích.
Trang 18Câu 19: Khái niệm buýt dữ liệu (data-bus), buýt điều khiển (control-bus), buýt địa chỉ (address-bus), buýt lệnh / chỉ thị (instruction-bus)? Độ rộng của buýt (bus- width) và mối liên hệ với không gian bộ nhớ và kiến trúc tập lệnh?
- Bus là một hệ thống con (subsystem) có nhiệm vụ truyền dữ liệu giữa các bộ phận
trong máy tính Một hệ thống bus thường gồm ba thành phần: bus địa chỉ, bus dữ liệu vàbus điều khiển
Trang 19- bus địa chỉ(A-bus) là bus một chiều có nhiệm vụ truyền các tín hiệu địa chỉ phát
hành bởi CPU đến bộ nhớ hoặc các thiết bị vào ra Các tín hiệu địa chỉ giúp CPU chọnđược ô nhớ cần đọc/ghi hoặc thiết bị vào ra cần troa đổi dữ liệu
- bus dữ liệu (data-bus) là bus hai chiều có nhiệm vụ truyền các tín hiệu dữ liệu đi
và đến CPU Dữ liệu được bus dữ liệu chuyển từ CPU đến bộ nhớ hoặc thiết bị vào ra vàngược lại
- bus điều khiển (control bus) là bus một chiều theo một hướng, có nhiệm vụ
truyền các tín hiệu điều khiển từ CPU đến bộ nhớ hoặc thiết bị vào ra và truyền các tín hiệutrạng thái từ bộ nhớ hoặc thiết bị vào ra về CPU
- Các bus địa chỉ, dữ liệu và điều khiển thường phối hợp cùng tham gia truyền dẫncác tín hiệu địa chỉ, dữ liệu và điều khiển trong quá trình CPU trao đổi thông tin với bộ nhớhoặc các thiết bị vào ra
- bus lệnh / chỉ thị (instruction-bus)
- Độ rộng của buýt (bus-width)
Độ rộng Bus dữ liệu và Bus địa chỉ (Data Bus và Add Bus)
Độ rộng Bus dữ liệu là nói tới số lượng đường truyền dữ liệu bên trong và bên ngoàiCPU
Như ví dụ hình dưới đây thì CPU có 12 đường truyền dữ liệu ( ta gọi độ rộng DataBus là 12 bit ), hiện nay trong các CPU từ Pentium 2 đến Pentium 4 đều có độ rộng DataBus là 64 bit
Tương tự như vậy thì độ rộng Bus địa chỉ ( Add Bus ) cũng là số đường dây truyềncác thông tin về địa chỉ
- Địa chỉ ở đây có thể là các địa chỉ của bộ nhớ RAM, địa chỉ các cổng vào ra và cácthiết bị ngoại vi v v để có thể gửi hoặc nhận dữ liệu từ các thiết bị này thì CPU phải cóđịa chỉ của nó và địa chỉ này được truyền đi qua các Bus địa chỉ
Giả sử : Nếu số đường địa chỉ là 8 đường thì CPU sẽ quản lý được 28 = 256 địa chỉ
Trang 20Hiện nay trong các CPU Pentium 4 có 64 bít địa chỉ và như vậy chúng quản lý được 264 địachỉ nhớ
Câu 20: Kiến trúc von Neumann?
• Còn gọi là máy tính IAS
• Princeton Institute for Advanced Studies
• Được bắt đầu từ 1947, hoàn thành 1952
• Do John von Neumann thiết kế
• Được xây dựng theo ý tưởng “chương trình được lưu trữ” (stored-program concept)của von Neumann/Turing (1945)
• Bao gồm các thành phần:
- Đơn vị điều khiển (CU)
• nhận lệnh từ bộ nhớ, giải mã và thực hiện lệnh một cách tuần tự,
• điều khiển hoạt động của các thiết bị vào-ra
- Đơn vị số học và logic (ALU)
• thực hiện các phép toán với số nhị phân
- Bộ nhớ chính
• chứa chương trình và dữ liệu
• được đánh địa chỉ theo từng ngăn nhớ, không phụ thuộc vào nội dungcủa nó
- Các thiết bị vào ra
• Trở thành mô hình cơ bản của máy tính
Kiến trúc Von – Neumann dựa trên 3 khái niệm cơ sở:
Trang 21- 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ưu trữ cả lệnh và dữ liệu.
- Bộ nhớ được đánh địa chỉ theo vùng, không phụ thuộc vào nội dung nó lưu trữ
- Các lệnh của một chương trình được thực hiện tuần tự
Quá trình thực hiện lệnh được chia thành 3 giai đoạn chính:
- CPU đọc (fetch) lệnh từ bộ nhớ
- 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ớ
- CPU ghi kết quả thực hiện lệnh vào bộ nhớ (nếu có)
CÂU 21: Kiến trúc máy tính Harvard
Kiến trúc máy tính Harvard chia bộ nhớ trong thành hai phần riêng biệt:
- Bộ nhớ lưu chươngtrình (Program Memory)
- Bộ nhớ lưu dữ liệu (Data Memory)
Hai hệ thống bus riêng được sử dụng để kết nối CPU với bộ nhớ lưu chương trình và
bộ nhớ lưu dữ liệu Mỗi hệ thống bus đều có đầy đủ ba thành phần để truyền dẫn các tínhiệu địa chỉ, dữ liệu và điều khiển
Máy tính dựa trên kiến trúc Harvard có khả năng đạt được tốc độ xử lý cao hơn máytính dựa trên kiến trúc von-Neumann do kiến trúc Harvard hỗ trợ hai hệ thống bus độc lậpvới băng thông lớn hơn Ngoài ra, nhờ có hai hệ thống bus độc lập, hệ thống nhớ trongkiến trúc Harvard hỗ trợ nhiều lệnh truy nhập bộ nhớ tại một thời điểm, giúp giảm xungđột truy nhập bộ nhớ, đặc biệt khi CPU sử dụng kỹ thuật đường ống (pipeline)
CÂU 22: Pipeline Architecture
Pipe là một hàng đợi thông điệp Một bộ lọc (filter) là một quá trình, chủ đề, hoặc các
thành phần khác mà không ngừng đọc thông điệp từ một pipe đầu vào, một tại một thờiđiểm, xử lý mỗi thông điệp, sau đó ghi kết quả vào một pipe đầu ra Như vậy, có thể hình
thành các pipeline (đường ống dẫn) của các bộ lọc kết nối bằng các đường ống:
Trang 22Đây là một kỹ thuật làm cho các giai đoạn khác nhau của nhiều lệnh được thi hànhcùng một lúc.
Ví dụ: Chúng ta có những lệnh đều đặn, mỗi lệnh được thực hiện trong cùng mộtkhoản thời gian Giả sử, mỗi lệnh được thực hiện trong 5 giai đoạn và mỗi giai đoạn đượcthực hiện trong 1 chu kỳ xung nhịp Các giai đoạn thực hiện một lệnh là: lấy lệnh (IF:Instruction Fetch), giải mã (ID: Instruction Decode), thi hành (EX: Execute), thâm nhập bộnhớ (MEM: Memory Access), lưu trữ kết quả (RS: Result Storing)
Hình III.4 cho thấy chỉ trong một chu kỳ xung nhịp, bộ xử lý có thể thực hiện mộtlệnh (bình thường lệnh này được thực hiện trong 5 chu kỳ)
So sánh với kiểu xử lý tuần tự thông thường, 5 lệnh được thực hiện trong 25 chu kỳxung nhịp, thì xử lý lệnh theo kỹ thuật ống dẫn thực hiện 5 lậnh chỉ trong 9 chu kỳ xungnhịp
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 ốngdẫn có một số ràng buộc:
- Cần phải có một mạch điện để thi hành mỗi giai đoạn của lệnh vì tất cả các giaiđoạn của lệnh được thi hành cùng lúc Trong một bộ xử lý không dùng kỹ thuật ống dẫn, ta
có thể dùng bộ làm toán ALU để cập nhật thanh ghi PC, cập nhật địa chỉ của toán hạng bộnhớ, địa chỉ ô nhớ mà chương trình cần nhảy tới, làm các phép tính trên các toán hạng vì cácphép tính này có thể xảy ra ở nhiều giai đoạn khác nhau
Trang 23- Phải có nhiều thanh ghi khác nhau dùng cho các tác vụ đọc và viết Trên hìnhIII.4, tại một chu kỳ xung nhịp, ta thấy cùng một lúc có 2 tác vụ đọc (ID, MEM) và 1 tác vụviết (RS).
- Trong một máy có kỹ thuật ống dẫn, có khi kết quả của một tác vụ trước đó, làtoán hạng nguồn của một tác vụ khác Như vậy sẽ có thêm những khó khăn mà ta sẽ đề cập
ở mục tới
- 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ánhạng trong một chu kỳ duy nhất của xung nhịp
- Cần phải có các bộ làm tính ALU hữu hiệu để có thể thi hành lệnh số học dài nhất,
có số giữ, trong một khoảng thời gian ít hơn một chu kỳ của xung nhịp
- 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 chomỗ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áclệnh trong trường hợp có ngắt quãng
CÂU 23: Khái niệm may rủi, mạo hiểm (hazard) trong kiến trúc đường ống? Các kiểu mạo hiểm: điều khiển (control hazards), dữ liệu (data hazards), cấu trúc (structural hazards)?
- May rủi trong kiến trúc đường ống?
- Mạo hiểm (hazard) trong kiến trúc đường ống: Một nguy hiểm là một trường hợp phátsinh vì pipelining (sẽ làm cho việc thực thi một lệnh khó khăn hoặc gây ra sai sót trong thựcthi ( tức là các pipelining thay đổi ngữ nghĩa của các lệnh thực thi)
- Phân loại:
o Khi một đơn vị chức năng không hoàn toàn pipelined
Việc sử dụng của các đơn vị chức năng đòi hỏi nhiều hơn một chu kỳđồng hồ
Nếu một lệnh kế tiếp 1 lệnh mà lệnh đó sử dụng nó, và lệnh thứ haicũng đòi hỏi tài nguyên thì nó phải ngừng chạy
o Liên quan đến việc chia sẻ tài nguyên giữa các giai đoạn đường ống
Xảy ra khi hai lệnh khác nhau muốn sử dụng các nguồn tài nguyêntrong cùng một chu kỳ đồng hồ
- Dữ liệu nguy hiểm: xảy ra khi Pipelining thay đổi thời gian tương đối của các lệnhbằng cách chồng chéo các lệnh
Phân loại:
Trang 24o Đọc Sau khi Viết (RAW): Các mã được gọi đến để Read xảy ra sau khi Write,đường ống gây ra Read xảy ra trước.
o Viết Sau khi đã đọc (WAR)
o Viết Sau khi Viết (WAW)
- Cấu trúc nguy hiểm: Sử dụng một phần cứng duy nhất cho hai điều cùng một lúc
- Kiểm soát nguy hiểm: có 3 cách sửa chữa mối nguy hiểm:
o Tài liệu hướng dẫn: hỗ trợ ngữ nghĩa được xác định bởi các đường ống dẫn
o Stall: Trì hoãn việc thực hiện lệnh thứ hai cho đến khi nguy hiểm đã được giảiquyết
o Forward: dữ liệu cần có thể thực sự tồn tại ở nơi nào đó trong hệ thống bằngcách bổ sung đường dẫn
CÂU 24: Bộ vi xử lý hệ nhúng
Các bộ xử lý trong hệ thống nhúng được chia thành hai loại: vi xử lý và vi điềukhiển Các vi điều khiển thường có các thiết bị ngoại vi được tích hợp trên chip nhằm giảmkích thước của hệ thống
Vi xử lý (CPU):
- Logic toán học (ALU – Arthimetic Logic Unit), để hỗ trợ cho hoạt động của ALU
Trang 25còn có thêm một số các thành phần khác như bộ giải mã (decoder), bộ tuần tự(sequencer) và các thanh ghi Bộ giải mã chuyển đổi (thông dịch) các lệnh lưu trữ ở trong
bộ mã chương trình thành các mã mà ALU có thể hiểu được và thực thi Bộ tuần tự cónhiệm vụ quản lý dòng dữ liệu trao đổi qua bus dữ liệu của VXL Các thanh ghi được sửdụng để CPU lưu trữ tạm thời các dữ liệu chính cho việc thực thi các lệnh và chúng có thểthay đổi nội dung trong quá trình hoạt động của ALU Hầu hết các thanh ghi của VXL đều
là các bộ nhớ được tham chiếu (mapped) và hội nhập với khu vực bộ nhớ và có thể được
sử dụng như bất kỳ khu vực nhớ khác
- Registers (Các thanh ghi) có chức năng lưu trữ trạng thái của CPU
- Hệ thống Bus: Bus địa chỉ và Bus dữ liệu
CÂU 25: Các thành phần hệ nhúng
Các lớp khác nhau của một hệ thống nhúng
Trang 261 Lớp trên là phần mềm nhúng Lớp này thay đổi theo thiết kế của hệ thống đang đượcxây dựng Trong một số hệ thống, một số lớp có thể được kết hợp hoặc hoàn toàn bỏqua Về cơ bản phần mềm nhúng bao gồm:
Device Drivers: đó là phần mềm được viết trực tiếp kiểm soát phần cứng nhúng
và cung cấp một giao diện API
Operating System (Hệ điều hành) là phần mềm quản lý các nguồn tài nguyên hệthống
Application SW (Phần mềm ứng dụng) là phần mềm thực hiện các chức năngchính mà hệ thống được xây dựng cho
2 Các lớp thấp hơn là các phần cứng nhúng Nhúng phần cứng bao gồm:
Bộ vi xử lý, đó là bộ điều khiển hệ thống chính
Các thiết bị bộ nhớ, nơi các chỉ lệnh và dữ liệu được lưu trữ
Thiết bị I / O thông qua thông tin liên lạc giữa bộ xử lý và thế giới bên ngoàiđược kích hoạt
Câu 26 Sự khác nhau giữa ROM, PROM, EPROM và EEPROM?
Trong các hệ thống vi xử lý, bộ nhớ ROM được sử dụng để ghi các chương trình và
dữ liệu cố định như: Chương trình khởi động hệ thống, chương trình ROM BIOS của máytính, các chương trình điều khiển hoạt động của hệ thống vi xử lý không có bộ nhớ ngoài
Các loại bộ nhớ ROM bao gồm: Mask ROM là ROM được ghi dữ liệu ngay từ khisản xuất không thể thay đổi được
- PROM (Programmable Read-only memory) là loại ROM lập trình được một lầnbởi người sử dụng và dữ liệu đã ghi không thể xóa
- EPROM (Erasable programmable read only memory) là bộ nhớ ROM có thể lậptrình bằng điện và xóa bằng tia cực tím với cường độ thích hợp (xoá ghi bằng phần cứng)
- EEPROM (Electrically Erasable Programmable Read-Only Memory) là ROM lậptrình và xóa nhiều lần bằng điện Có thể ghi được thông tin sử dụng phần mềm chuyêndụng
Câu 27 Khái niệm về ngắt và xử lý ngắt? Ngắt cứng và ngắt mềm?
Khái niệm ngắt (Sự cần thiết phải ngắt CPU):
Ngắt là việc tạm dừng chương trình đang chạy để CPU có thể chạy một trương trìnhkhác nhằm xử lý một yêu cầu do bên ngoài đưa tới CPU như yêu cầu Vào/Ra hoặc dochính yêu cầu bên trong CPU như lỗi trong khi tính toán
Xử lý ngắt (Cơ chế xử lý ưu tiên ngắt):
Trang 27Cơ chế phổ biến là chia các ngắt theo mức ưu tiên.cpu 8086 có kn phân biệtcác mức ưu tiên khác nhau cho các loại ngắt như sau:
-ngắt trong :INT0,INT N,INTO cao nhất-ngắt ko che đc NMI
- ngắt che đc INTR
- ngắt để chạy từng lệnh INT 1Theo thứ tự ưu tiên ngầm định trong việc xử lý ngắt của cpu 8056 thì INT 0
có mức ưu tiên cao hơn INTR Vì vậy đầu tiên cpu sẽ thực hiện chương trình phục vụ ngắtINT 0 để đáp ứng với lỗi đặc biệt cho phép chưa cho 0 gây ra và cờ IF bị xóa về 0 yêucầu ngắt INTR sẽ tự động bị cấm cho tới khi chương trình phục vụ ngắt INT 0 được hoàntất và trờ về nhờ IRET, cờ IF cũ được trả lại Tiếp theo đó cpu sẽ đáp ứng yêu cầu ngắtINTR bằng cách thực hiện chương trình phục vụ ngắt dành cho INTR
Các loại ngắt (Trong hệ 8088):
Ngắt cứng: đó là yêu cầu ngắt CPU do các tín hiệu đến từ các chân INTR và
NMI Ngắt cứng INTR là yêu cầu ngắt che được Các lệnh CLI và STI có ảnh hưởng trực
tiếp đến trạng thái của cờ IF trong bộ vi xử lí, tức là ảnh hưởng tới việc Cpu có nhận biết
yêu cầu ngắt tại chân này hay ko?
Ngắt mềm: Khi CPU thực hiện các lệnh ngắt dạng INT N, trong đó N là số
hiệu(kiểu) ngắt nằm trong khoảng 00-FFH(0-255)
Câu 28 Khái niệm về chương trình xử lý ngắt (ISR) và yêu cầu ngắt?
Khái niệm:
ISR hoàn toàn giống với một chương trình bình thường trên máytính, nghĩa là nó có khả năng truy xuất đến tất cả các lệnh ngôn ngữ máy của μP Tuynhiên cuối ISR sẽ kết thúc bằng lệnh IRET (Interrupt Return) để μP tiếp tục thực hiện lệnhđã kết thúc trước đây
Đối với mỗi ngắt thì phải có một trình phục vụ ngắt (ISR) hay trình quản lý ngắt
để đưa ra nhiệm vụ cho bộ vi điều khiển khi được gọi ngắt Khi một ngắt được gọi thì bộ viđiều khiển sẽ chạy trình phục vụ ngắt Đối với mỗi ngắt thì có một vị trí cố định trong bộ
nhớ để giữ địa chỉ ISR của nó Nhóm vị trí bộ nhớ được dành riêng để lưu giữ địa chỉ của các ISR được gọi là bảng vector ngắt như hình bên dưới
Trang 28Yêu cầu ngắt:
Khi kích hoạt hay yêu cầu một ngắt bộ vi điều khiển thực hiện các bước sau:
Nó hoàn thành nốt lệnh đang thực hiện và lưu địa chỉ của lệnh kế tiếp vào ngăn xếp.
Nó cũng lưu tình trạng hiện tại của tất cả các ngắt.
Nó nhảy đến một vị trí cố định trong bộ nhớ được gọi là bảng vector ngắt, nơi lưu giữ địa chỉ của một trình phục vụ ngắt.
Bộ vi điều khiển nhận địa chỉ ISR từ bảng vector ngắt và nhảy tới đó Nó bắt đầu thực hiện trình phục vụ ngắt cho đến lệnh cuối cùng của ISR và trở về chương trình
chính từ ngắt
Khi bộ vi điều khiển quay trở về nơi nó đã bị ngắt Trước hết nó nhận địa chỉ của bộđếm chương trình PC từ ngăn xếp bằng cách kéo 02 byte trên đỉnh của ngăn xếp vào
PC Sau đó bắt đầu thực hiện tiếp các lệnh từ địa chỉ đó
Câu 29 Khái niệm mạch tích hợp chuyên dụng (ASIC)? Các loại ASIC?
ASIC trên cơ sở thư viện phần tử logic chuẩn (standard-cell-based ASIC)
ASIC dựa trên mảng lôgíc (gate-array-based ASIC)
ASIC đặc chế hoàn toàn (full-custom ASIC)
ASIC tiền cấu trúc (structured/platform design)
ASIC dùng thư viện phần tử logic và các phần tử thiết kế sẵn (cell libraries, IP-baseddesign)
Trang 29Câu 30 Khái niệm bộ xử lý tín hiệu số (DSP) và chức năng, ứng dụng của DSP? Khái niệm:
DSP = là việc xử lý những tín hiệu đã được biểu diễn dưới dạng chuỗi những dãy số
Ứng dụng:
Trong lĩnh vực điện tử y sinh, điều chỉnh động cơ diesel, xử lý thoại, các cuộc gọiđiện thoại khoảng cách xa, xử lý tiếng nói, xử lý âm thanh, ghi nhạc và tăng cường chấtlượng hình ảnh và truyền hình
Chức năng:
Xử lý, điều khiển tín hiệu số
Thực thi mã ứng dụng và thực hiện điều khiển lặp
Tính toán tất cả địa chỉ lệnh và địa chỉ dữ liệu
Điều khiển mọi tác vụ về bit như phép dịch số học
Thực hiện mọi phép tính số học Chuyên dụng trong các phép tính nhân tốc độ cao
Câu 31: Khái niệm mảng cổng logic có thể lập trình được (FPGA)?
FPGA là một loại ASIC, ra đời sau nhưng đã phát triển rất nhanh chóng FPGA kế thừa khá nhiều tính năng của ASIC như, khả năng thiết kế phần cứng bằng ngônngữ Tuy nhiên, có khác biệt lớn nhất là, với FPGA không cần phải chế tạo IC giống nhưASIC Có thể nói, FPGA là giải pháp trung gian giữa IC vi điều khiển và ASIC Về cấutạo, hãy hình dung, phần cứng FPGA được chế tạo trước, nhưng chỉ là tập hợp rất nhiềucác cổng logic Kết nối giữa các cổng logic này là mềm, tức khả trình Khi bạn viết mô tảphần cứng dùng ngôn ngữ HDL, phần mềm biên dịch của hãng sẽ chuyển file HDL thànhdạng ảnh gồm các khối logic và kết nối, rồi nạp vào IC
Trang 30Câu 32 Sự khác nhau giữa ASIC, DSP và FPGA?
Câu 33 Thiết kế hệ nhúng và những khác biệt với thiết kế máy tính đa dụng hay mạch phần cứng?
- Thiết kế hệ nhúng bao gồm thiết kế phần cứng và phần mềm điều khiển phần cứng
đó nhằm thực hiện một chức năng hoặc một số chức năng nhất định
- Các hệ thống nhúng được thiết kế để thực hiện một số nhiệm vụ chuyên dụng chứkhông phải đóng vai trò là các hệ thống máy tính đa chức năng Một số hệ thống đòi hỏiràng buộc về tính hoạt động thời gian thực để đảm bảo độ an toàn và tính ứng dụng; một số
hệ thống không đòi hỏi hoặc ràng buộc chặt chẽ, cho phép đơn giản hóa hệ thống phầncứng để giảm thiểu chi phí sản xuất
- Một hệ thống nhúng thường không phải là một khối riêng biệt mà là một hệ thốngphức tạp nằm trong thiết bị mà nó điều khiển
- Phần mềm được viết cho các hệ thống nhúng được gọi là firmware và được lưu trữtrong các chip bộ nhớ ROM hoặc bộ nhớ flash chứ không phải là trong một ổ đĩa Phầnmềm thường chạy với số tài nguyên phần cứng hạn chế: không có bàn phím, màn hìnhhoặc có nhưng với kích thước nhỏ, dung lượng bộ nhớ thấp Sau đây, ta sẽ đi sâu, xem xét
cụ thể đặc điểm của các thành phần của hệ thống nhúng
Thiết kế máy tính đa dụng là thiết kế máy tính có thể thực hiện nhiều chức năng dựavào cài đặt của người sử dụng
Câu 34 Những khái niệm cơ bản trong phát triển phần cứng và hệ nhúng: ADL, AADL, HDL, VHDL, UML, ASIC, DSP, FPGA, ASIP?
Trang 311 ADL: Architecture description language.
2 AADL: Architecture Analysis & Design Language là ngôn ngữ mô tả kiến trúcđược chuẩn hóa bởi SAE
3 HDL: Hardware Desription Language:
- Là ngôn ngữ thuộc lớp ngôn ngữ máy tính (computer language)
- Dùng miêu tả cấu trúc và hoạt động một vi mạch
- Dùng mô phỏng, kiểm tra hoạt động vi mạch
- Biểu diễn hành vi theo thời gian và cấu trúc không gian của mạch
- Bao gồm những ký hiệu biểu diễn thời gian và sự đồng thời (time and concurrence)
4 VHDL:
- VHDL là viết tắt của cụm từ Very High Speed Intergrated Circuit HardwareDescription Language-ngôn ngữ mô phỏng phần cứng cho các mạch tích hợp tốc độ rấtcao VHDL là ngôn ngữ mô phỏng phần cứng được phát triển dùng cho chương trìnhVHSIC (Very High Speed Intergrated Circuit) của bộ quốc phòng Mỹ.Mục tiêu của việcphát triển VHDL là có được một ngôn ngữ mô phỏng phần cứng tiêu chuẩn và thống nhấtcho phép phát triển thử nghiệm các hệ thống số nhanh hơn cũng như cho phép dễ dàng đưacác hệ thống đó vào ứng dụng trong thực tế Ngôn người VHDL được ba công tyIntermetics, IBM và Texas Instruments bắt đầu nghiên cứu phát triển vào 7/1983 Phiênbản đầu tiên được công bố vào 8/1985 Sau đó VHDL được đề xuất để tổ chức IEEE xemxét thành một tiêu chuẩn Năm 1987, đã đưa ra tiêu chuẩn về VHDL – tiêu chuẩn IEEE-1076-1987
- VHDL được phát triển để giải quyết các khó khăn trong việc phát triển, thay đổi vàlập tài liệu cho các hệ thống số Như ta đã biết, một hệ thống số có rất nhiều tài liệu mô tả
Ðể có thể vận hành bảo trì sửa chữa một hệ thông ta cần tìm hiểu tài liệu đó kỹ lưỡng Vớimột ngôn ngữ mô phỏng phần cứng tốt việc xem xét các tài liệu mô tả trở nên dễ dàng hơn
vì bộ tài liệu đó có thể được thực thi để mô phỏng hoạt động của hệ thống Như thế ta cóthể xem xét toàn bộ các phần tử của hệ thống hoạt động trong một mô hình thống nhất
5 UML
- Mô hình hoá các hệ thống sử dụng các khái niệm hướng đối tượng
- Thiết lập một kết nối từ nhận thức của con người đến các sự kiện cần mô hình hoá
- Giải quyết vấn đề về mức độ thừa kế trong các hệ thống phức tạp, có nhiều ràngbuộc khác nhau
- Tạo một ngôn ngữ mô hình hoá có thể sử dụng được bởi người và máy
6 ASIC:
Trang 32- Công nghệ ASIC là một công nghệ chế tạo các vi mạch tích hợp dành cho các ứngdụng riêng.
7 DSP
- Digital signal processor (DSP) - Bộ xử lý tín hiệu số là bộ vi xử lý có thể lập trìnhcho một mục đích chuyên dụng nào đó, nó được thiết kế để điều khiển theo thời gian thựcluồng truyền liên tục của một khối lượng lớn dữ liệu số nhằm cải tiến chất lượng hay sửađổi, bổ sung theo những yêu cầu riêng DSP được dùng rộng rãi để xử lý dòng dữ liệu liêntục của âm thanh, video và đồ họa
8 FPGA
9 ASIP
Câu 35 Phần mềm nhúng là gì? Hãy nêu các ví dụ.
- Phần mềm nhúng là phần mềm được viết bằng các ngôn ngữ lập trình sau đó biêndịch và chạy trên các Hệ thống nhúng (embedded system)- được định nghĩa là một hệthống chuyên dụng, thường có khả năng tự hành và được thiết kế tích hợp vào một hệthống lớn hơn để thực hiện một chức năng chuyên biệt nào đó
- Phần mềm nhúng là một loại phần mềm được xây dựng vào hệ thống phần cứng.Phần mềm này thường được thiết kế để thực hiện một chức năng cụ thể, mặc dù một phầncứng duy nhất có thể chứa nhiều phần của phần mềm nhúng Bất kỳ phần của công nghệ có
bo mạch và chip máy tính có thể sẽ có phần mềm nhúng bên trong nó, từ đồng hồ kỹ thuật
số cho điện thoại di động máy tính Các hệ thống này cho phép nhiều người trong số cácchức năng tiên tiến mà là phổ biến trong các thiết bị hiện đại