- Sơ lược về quá trình khởi động: “Các hệ thống tính toán hoạt động được nhờ bộ xử lý trung tâm hay một tập hợp các bộ xử lý, chỉ có thể thực thi các đoạn mã ở bộ nhớ điều hành, được bi
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN - TRUYỀN THÔNG
BÁO CÁO BÀI TẬP LỚN
BÀI TẬP THEO NHÓM
ĐỀ TÀI: Cấu trúc và tổ chức hệ thống bộ nhớ.
So sánh tổ chức hệ thống bộ nhớ trên máy tính cá nhân
và smartphone.
Hà Nội tháng 05/2017
MỤC LỤC
Giáo viên hướng dẫn :
Sinh viên thực hiện
(Nhóm 8)
:
Lớp : KSCLC-HTTT&TT-K58
Trang 21 Khái quát chung 3
3 Phân cấp hệ thống bộ nhớ trên máy tính 7
4 So sánh tổ chức hệ thống bộ nhớ trên máy tính cá nhân và smartphone 8 4.1 So sánh về hệ thống phân cấp bộ nhớ 8
Trang 3Phần 1: Cấu trúc và tổ chức hệ thống bộ nhớ máy tính.
1 Khái quát chung về cấu trúc hệ thống bộ nhớ máy tính
Bộ nhớ máy tính có thể chia thành 2 loại chính:
Bộ nhớ trong
Bộ nhớ Cache: Bộ nhớ có thời gian thâm nhập nhanh
Bộ nhớ chính (Bộ nhớ trung tâm): RAM, DRAM, ROM, PROM,…
Bộ nhớ ngoài : băng từ, đĩa (đĩa cứng, đĩa mềm, CD,…)
2 Tổ chức hệ thống bộ nhớ máy tính
- Mọi thứ trên bộ nhớ máy tính, được tạo thành từ một đơn vị cơ bản, được gọi là các “bit” hay các chữ số nhị phân Mỗi một đơn vị được lưu trên các cell (tế bào) của bộ nhớ máy tính
- Các tập tin và các chương trình bao gồm hàng triệu bit, tất cả đều được xử lý tại đơn vị xử lý trung tâm hay CPU, hoạt động như bộ não của máy tính.
Hình 1 Bộ vi xử lý trung tâm CPU
- Thành phần đầu tiên mà CPU gọi đến khi khởi động chính là ROM (Read Only Memory – Bộ nhớ chỉ đọc) Đây gọi là quá trình boot-loader.
2.1 Bộ nhớ trong
2.1.1 Bộ nhớ trung tâm (hay còn gọi là bộ nhớ chính)
2.1.1.1 ROM – Bộ nhớ chỉ đọc
- ROM là bộ nhớ chỉ đọc, không khả biến
- Là nới chứa các chương trình và dữ liệu cố định của hệ thống
- Sơ lược về quá trình khởi động:
“Các hệ thống tính toán hoạt động được nhờ bộ xử lý trung tâm (hay một tập hợp các bộ xử lý), chỉ có thể thực thi các đoạn mã ở bộ nhớ điều hành, được biết đến với tên gọi là bộ nhớ hệ thống, với nhiều loại tùy thuộc vào công nghệ sản xuất như: ROM hay RAM Mã của các hệ điều hành, các chương trình ứng dụng và dữ liệu hiện nay thường được lưu trữ trên các bộ nhớ bền,
bộ nhớ ngoại vi, hay bộ nhớ thứ cấp Các ví dụ của các loại bộ nhớ đó là: hard disk (ổ cứng), CD, USB, đĩa mềm Khi một máy tính được bật, ban đầu
nó dựa hoàn toàn vào các mã và dữ liệu nằm trên những phần có sẵn của bản
đồ bộ nhớ hệ thống, như ROM, NVRAM hay CMOS RAM Các đoạn mã
Trang 4và dữ liệu "cứng" được lưu trữ trên bản đồ bộ nhớ hệ thống này là những hướng dẫn cần thiết tối thiểu để truy nhập vào những thiết bị cứng ngoại vi
và nạp vào bộ nhớ hệ thống tất cả những phần cần thiết của hệ điều hành
Có thể nói trong khoảng thời gian khởi động máy tính, hệ thống máy tính không có hệ điều hành nào trong bộ nhớ trong”[1]
- Các loại bộ nhớ ROM:
Maskable ROM (ROM mặt nạ): thông tin được ghi khi chế tạo
PROM (Programmable ROM):
▪ Khi chế tạo chưa có thông tin
▪ Cho phép ghi thông tin được 1 lần bằng thiết bị chuyên dụng
EPROM (Erasable PROM):
EEPROM (Electrically Erasable PROM):
Flash Memory:
▪ Đọc/ghi theo từng block
▪ Tốc độ rất nhanh, dung lượng lớn Các máy tính có bộ nhớ ngắn hạn cho các tác vụ trước mắt và bộ nhớ dài hạn để lưu trữ lâu hơn
Sau khi hệ điều hành được khởi động thành công, ta sẽ tìm hiểu làm thế nào mà bộ nhớ máy tính sẽ làm việc và tương tác với nhau như thế nào.
- Khi chạy một chương trình, hệ điều hành sẽ xác định khu vực của bộ nhớ ngắn hạn để thực hiện các câu lệnh Khoảng thời gian CPU xử lý thông tin được gọi
là độ trễ bộ nhớ
- Và bởi vì các câu lệnh của chương trình phải được thực hiện một cách nhanh chóng và liên tục nên tất cả vị trí trên bộ nhớ ngắn hạn có thể được truy cập theo bất kỳ thứ tự nào, vì vậy nó được đặt tên là Bộ nhớ truy cập ngẫu nhiên – RAM (Random Access Memory)
Vậy RAM là gì, cấu trúc như thế nào và hệ thống bộ nhớ ở đây hoạt động ra sao ?
Trang 52.1.1.2 Bộ nhớ truy cập ngẫu nhiên – RAM
- Là loại bộ nhớ đọc/ghi, khả biến và chứa các thông tin tạm thời
- Các loại bộ nhớ RAM:
SRAM (Static): RAM tĩnh
▪ Mỗi phần tử nhớ là một mạch lật 2 trạng thái ổn định → thông tin trên SRAM ổn định (không phải làm tươi)
▪ Tốc độ nhanh
▪ Dung lượng chip nhớ nhỏ
▪ Giá thành đắt
▪ Thường dùng làm bộ nhớ Cache
DRAM (Dynamic): RAM động
▪ Mỗi phần tử nhớ là một tụ điện rất nhỏ → cứ sau một khoảng thời gian thì điện tích trên tụ điện sẽ bị mất, cho nên thông tin trên DRAM không ổn định → khắc phục bằng mạch làm tươi (refresh) DRAM
▪ Tốc độ chậm (do mất thời gian làm tươi DRAM)
▪ Dung lượng chip nhớ lớn, giá thành rẻ
▪ Thường dùng làm bộ nhớ chính Loại RAM thường được dùng trong máy tính hiện nay là DRAM
Khi thực hiện một câu lệnh, dữ liệu cần được truy xuất một cách liên tục và nhanh chóng (tức là độ trễ phải càng nhỏ càng tốt) Trong trường hợp này,máy tính cần có bộ nhớ đệm Cache, một loại nằm ngay trong CPU (L1 Cache) có độ trễ ~1ns , một loại nằm ngay giữa CPU và DRAM (L2 Cache) có độ trễ ~10-20ns vì độ trễ của DRAM mặc dù nhỏ nhưng vẫn rất lớn so với những gì CPU yêu cầu
Chúng ta sẽ tìm hiểu về bộ nhớ Cache
2.1.2 Bộ nhớ đệm Cache
- Là loại bộ nhớ có thời gian thâm nhập khá nhanh So với các loại bộ nhớ khác ( DRAM, Băng từ, ổ đĩa,…), bộ nhớ cache có giá thành khá đắt và có kích thước rất lớn so với các ổ đĩa khác có cùng dung lượng, vì thế nên bộ nhớ cache dùng trong các loại máy tính có dung lượng rất nhỏ
- Là bộ nhớ có tốc độ cao và độ trễ rất thấp (gần như là có cùng tốc độ xử lý cùng CPU)
- Do hầu hết các chương trình thực tế xuất lặp đi lặp lại cùng một dữ liệu hay các lệnh y chang nhau Nhờ lưu trữ các thông tin này lưu ở bộ nhớ Cache, máy tính
sẽ khỏi phải truy xuất vào DRAM vốn chậm chạp hơn Và vì đặc tính của bộ nhớ đệm là các thông tin sẽ không bị làm tươi trong suốt quá trình hoạt động nên việc truy cập vào các dữ liệu có sẵn ở đây trở nên nhanh chóng
Trang 6- Khi bộ xử lý cần thâm nhập ( đọc/ghi ) vào một số liệu, trước hết bộ xử lý tìm số liệu đó trong bộ nhớ cache
- Nếu tìm thấy (hit) thì thâm nhập vào số liệu, nếu không thấy (miss) thì bộ xử lý tìm số liệu trong bộ nhớ chính đồng thời ghi lại dữ liệu đó vào cache
- Do L1 Cache nằm ngay trên CPU nên tốc độ xử lý rất nhanh CPU sẽ tiến hành kiểm tra dữ liệu mình cần có trong L1 Cache hay không và nếu không thì sẽ tiếp tục tìm kiếm ở L2 Cache (nằm ở Mainboard giữa CPU và DRAM) trước khi phải tìm số liệu đó ở bộ nhớ trung tâm
Tuy nhiên có một vấn đề là, RAM và bộ nhớ đệm chỉ có thể lưu giữ dữ liệu đến khi mà
nó có điện Với các dữ liệu vẫn còn trên thiết bị khi tắt máy, chúng phải được chuyển vào trong các bộ lưu trữ dài hạn, đó chính là bộ nhớ ngoài.
2.2 Bộ nhớ ngoài
- Bộ nhớ ngoài thường được chia thành 3 loại:
Đĩa từ: lưu trữ bằng từ trường, cũng là loại rẻ nhất Dữ liệu được lưu trong một
mô hình từ tính trên một đĩa quay được phủ phim từ tính Nhưng bởi vì phải quay đến nơi dữ liệu được lưu trữ để có thể đọc được, nên độ trễ của các loại ổ này chậm hơn gấp 100.000 lần so với DRAM
Đĩa quang: là các bộ lưu trữ trên cơ sở quang học như đĩa DVD hay Blu-ray cũng sử dụng các đĩa quay nhưng với lớp phủ phản xạ Chúng được mã hóa bằng các đường dẫn sáng tối trên mặt đĩa, và sử dụng các điốt có thể đọc được bằng một tia laser Các phương tiện lưu trữ quang học rẻ tiền và có thể di chuyển được, nhưng thậm chí còn có độ trễ chậm hơn so với ổ nhớ từ và dung lượng cũng tương đương
Flask Disk: là loại ổ lưu trữ lâu dài mới nhất và nhanh nhất, ổ lưu trữ dạng rắn Chúng không có các bộ phận chuyển động, thay vào đó chúng sử dụng các bóng bán dẫn cổng nối (floating gate transistor), để lưu trữ các bit bằng cách bắt lấy hoặc loại bỏ các hạt mang điện bên trong một cấu trúc được thiết kế đặc biệt
Trang 73 Phân cấp hệ thống nhớ trên máy tính
Và với những gì đã phân tích, tìm hiểu được về hệ thống bộ nhớ cũng như cách hoạt động của bộ nhớ trên máy tính, ta đưa ra sơ đồ phân cấp hệ thống nhớ của máy tính như sau:
- Nguyên lý sẽ như sau:
Khi bộ xử lý thực hiện thâm nhập vào một số liệu, bộ xử lý tìm số liệu đó ở đơn vị bộ nhớ gần nó nhất trong sơ đồ phân cấp (bộ nhớ có thời gian thâm nhập nhanh hơn
Nếu không tìm thấy, bộ xử lý sẽ thâm nhập vào đơn vị nhớ ở mức cao hơn trong sơ đồ phân cấp đồng thời số liệu tìm thấy được ghi vào bộ nhớ ở mức thấp hơn
- Mục đích của việc phân cấp bộ nhớ:
Mục tiêu là cung cấp một hệ thống bộ nhớ với chi phí cho mỗi byte gần như thấp nhất và tốc độ gần như ở mức nhanh nhất [2]
Trang 84 So sánh tổ chức hệ thống bộ nhớ trên máy tính cá nhân và
smartphone
4.1 So sánh về hệ thống phân cấp bộ nhớ
Hệ thống phân cấp của máy tính [5]
Kiến trúc bộ xử lý di động[6]
4.2 So sánh về cơ chế quản lý bộ nhớ ảo
Trang 9- Khái niệm: Là một kĩ thuật quản lý bộ nhớ được thực hiện bởi phần mềm và phần cứng Nó sẽ liên kết địa chỉ ô nhớ được dùng bởi phần mềm, gọi là địa chỉ ảo, tới địa chỉ vật lý trong bộ nhớ máy tính Bộ nhớ chính được các tác vụ coi như là những khoảng trống có địa chỉ liên tiếp hoặc tập hợp những vùng liên tiếp Hệ điều hành quản lý các ô địa chỉ ảo và sự phân vùng từ ổ nhớ thực đến ổ nhớ ảo Phần cứng phụ trách xử lý địa chỉ nằm trong CPU, thường được gọi tên là MMU (đơn vị quản lý bộ nhớ), sẽ tự động chuyển địa chỉ ảo sang địa chỉ vật lý Phần mềm nằm trong hệ điều hành có thể tạo ra những vùng địa chỉ ảo nằm mở rộng khả năng lưu trữ vật lý của bộ nhớ và từ đó chương trình sẽ có nhiều bộ nhớ hơn thực tế máy tính có Lợi ích quan trọng nhất của bộ nhớ ảo là đảm nhiệm giùm các ứng dụng quản lý vùng bộ nhớ được chia sẻ, tăng độ an toàn cho các vùng nhớ và giúp chương trình sử dụng nhiều bộ nhớ nhiều hơn bộ nhớ vật lý mà phần cứng máy tính có, dựa trên kĩ thuật phân trang [3]
- Khác với máy tính cá nhân có cơ chế quản lý bộ nhớ ảo, thì đối với smartphone, lấy ví dụ là hệ điều hành Android lại không sử dụng bộ nhớ ảo Smartphone sử dụng các bộ nhớ flash để lưu trữ dữ liệu Và vì việc ghi các trang của bộ nhớ (cơ chế của bộ nhớ ảo) vào bộ nhớ flash là không tốt đối với tuổi thọ pin và hiệu suất Đặc biệt là khi các ứng dụng không thể kiểm soát được phần nào của bộ nhớ điện thoại “Paged out”
- Tất nhiên, Android dựa trên Linux, nó sử dụng bộ nhớ ảo theo những cách khác
mà không hiển thị cho người dùng biết được Vì thế, Android phải có MMU, các ứng dụng trong đó sẽ sử dụng địa chỉ ảo thay vì địa chỉ vật lý Điều này bảo vệ ứng dụng không cho phép dữ liệu cá nhân của họ trong RAM được đọc bởi các ứng dụng khác Nó sử dụng delayed-commit của Linux để tiết kiệm bộ nhớ: khi một tiến trình cần nhiều trang bộ nhớ hơn, nó sẽ chỉ nhận được các trang của bộ nhớ vật lý khi chúng thực sự được sử dụng Trong Android, không có gì thực sự làm việc với swap files, nhưng nó cũng có nghĩa là việc kết luật Android không có bộ nhớ ảo là chưa thực sự chính xác [4]
Trang 10Tài liệu tham khảo
[1][3] Wikipedia.com
http://www.edn.com/design/systems-design/4397051/Memory-Hierarchy-Design-part-1
https://android.stackexchange.com/questions/62452/android-virtual-memory-support
https://www.imgtec.com/blog/building-efficient-multimedia-architectures-consumer-electronics-mobile-computing/