Phong Vũ Blog

Thứ Bảy, 19 tháng 6, 2021

Giải ngố: CPU cache là gì, nó hoạt động ra sao?

 admin     tháng 6 19, 2021     No comments   

Khi chúng ta nhìn vào thông số kỹ thuật của một CPU, chúng ta có thể thấy có một thông số về bộ nhớ cache được tích hợp sẵn trong CPU, dung lượng khoảng vài MB. Thông số này đóng vai trò quan trọng trong hiệu năng của CPU. Nhưng tại sao CPU lại cần đến cache, và cache của CPU hoạt động ra sao, sau đây chúng ta cùng tìm hiểu.

Khi máy tính chạy một chương trình, mã nguồn của chương trình đó được biên dịch thành mã máy mà CPU có thể hiểu được và đẩy vào trong RAM. Khi CPU thực hiện tính toán, nó hỏi dữ liệu từ trong RAM.

Giải ngố: CPU cache là gì, nó hoạt động ra sao? - Ảnh 1.

Ở những thế hệ máy tính đầu tiên được sản xuất, tốc độ của RAM và CPU là tương đương nhau, mỗi khi CPU cần dữ liệu để thực hiện tính toán, nó hỏi RAM, và RAM đáp ứng liền. Tuy nhiên, theo thời gian, tốc độ của CPU tăng nhanh hơn tốc độ của RAM nên điều này là một vấn đề. Bạn hãy hình dung điều này giống như 2 người cùng chạy bộ với nhau, nếu một người chạy nhanh và một người chạy chậm thì 2 người không thể nào cùng nói chuyện với nhau. Mỗi khi CPU cần dữ liệu, mà RAM không kịp đáp ứng thì điều này sẽ ảnh hưởng lớn đến tốc độ của máy.

Vì thế, người ta bèn nghĩ ra một cách đó là chèn thêm một lớp một bộ nhớ nữa vào giữa CPU và RAM. Loại bộ nhớ này được cấu tạo từ loại chip nhớ có tên gọi là SRAM, sử dụng 6 bóng bán dẫn để chứa 1 bit dữ liệu. So với loại chip nhớ DRAM được sử dụng trên các thanh RAM thông thường thì loại chip nhớ này có tốc độ nhanh hơn rất nhiều, nhưng ngược lại thì chi phí sản xuất cũng lớn hơn nhiều lần. Đối với CPU, thì đây được gọi là cache, còn RAM thông thường chính là backing-store.

Một bức ảnh đơn giản để minh hoạ cho cách sử dụng này. Không chỉ có một lớp cache bằng SRAM, các CPU thường có 2 lớp cache, thậm chí là 3 lớp cache:

Giải ngố: CPU cache là gì, nó hoạt động ra sao? - Ảnh 2.

Tìm hiểu về caching, một kĩ thuật tăng tốc máy tính phổ biến

Điều đầu tiên phải nói rằng, có những giới hạn nhất định ở bề mặt vật lý của con chip. Số lượng bóng bán dẫn có thể đặt cạnh những đơn vị tính toán thì có những giới hạn nhất định. Vì vậy dung lượng của bộ nhớ L1 cache thường rất nhỏ. Chẳng hạn, bộ nhớ cache L1 trên CPU intel Pentium 3 những năm 2000 là 32 KB, thì mãi đến năm 2017 trênintel Core i7, con số này mới chỉ tăng lên được thành 64 KB.

Tốc độ tăng dung lượng của L1 cache thường rất chậm do những giới hạn của chip.

Cách hoạt động cơ bản của CPU chỉ bao gồm việc đọc các dữ liệu (data) và thực hiện các chỉ dẫn hành động (instruction)- tức là làm gì với những dữ liệu này. Những dữ liệu về instruction được truy xuất tuần tự, còn mặt data thì được truy cập lặp đi lặp lại. Chính vì vậy, instructions và data có những mức độ truy xuất cục bộ khác nhau, nên để tăng tỷ lệ cache-hit, L1 lại được chia thành 2 phần là Data-cache và instruction-cache tương ứng để cache 2 loại dữ liệu này. L2 cache thì lại không chia ra như vậy.

CPU cache lưu dữ liệu theo từng dòng (cache-line). Kích thước của cache-line phụ thuộc vào từng loại CPU. Ví dụ, CPU Pentium 4, kích thước cache-line của L1 là 43 bytes, cache-line của L2 là 128 bytes. Xu hướng hiện tại là sử dụng cùng kích thước cho tất cả các lớp và con số phổ biến là 64 bytes.

Hãy phân tích một CPU 64-bit, mỗi cache-line có kích thước 64 bytes và mỗi thanh ghi (processor register) có thể chứa 8 bytes. Điều này nghĩa là khi một địa chỉ nhớ được truy cập, CPU cache không chỉ chứa những data đc truy cập, nhưng mà cả những data xung quanh nó, tổng cộng là 64 bytes. Đó chính là vì tính truy xuất cục bộ, vì khi một địa chỉ nhớ được truy cập, khả năng cao là những địa chỉ gần đó sẽ được truy cập tiếp trong những lần tiếp theo.

Giải ngố: CPU cache là gì, nó hoạt động ra sao? - Ảnh 3.

Vì CPU cache chứa được 64 byte trên một line. Hầu hết những truy cập vào DRAM cũng là 64 bytes. Thay vì request 8 lần mỗi lần 8 bytes, L2 request cả 64 bytes một lần. Đây được gọi là burst mode / burst transfer. Điều này giúp giảm tổng số request tới DRAM và cải thiện hiệu năng.

Khi request data, chúng ta muốn CPU cache nhận cả 64 bytes, nhưng ta cũng muốn những dữ liệu mà chúng ta cần thì tới trước để việc tính toán có thể thực hiện được ngay khi dữ liệu sẵn sàng. Do đó, thay vì chuyển dữ liệu từ đầu mỗi chunk 64 bytes, DRAM bắt đầu transfer dữ liệu từ địa chỉ được request trước. Dữ liệu được request thường được gọi là critical word. (dữ liệu thiết yếu).

Giải ngố: CPU cache là gì, nó hoạt động ra sao? - Ảnh 4.

CPU cache nói riêng hay memory nói chung, là một trong những thành phần cốt lõi của của bất kì một hệ thống máy tính nào. Trải qua hàng thập kỉ, ngành công nghiệp máy tính đã đưa ra rất nhiều nỗ lực để tối ưu và tích hợp những công nghệ bộ nhớ phức tạp nhất. Việc có kiến thức tốt về cache và memory sẽ giúp các lập trình viên thiết kế những hệ thống hoạt động hiệu quả với hiệu năng cao.

Adblock test (Why?)


Xem Chi Tiết Ở Đây >>>
Bạn có thể quan tâm:
>> Năm lý do khiến bạn nên mua một chiếc AirPods Max
>> Tai nghe Galaxy Buds2 đang được chế tạo, thiết kế có nhiều nâng cấp
>> Loa 7.1 Là Gì? Hệ Thống Âm Thanh 7.1 Được Sắp Xếp Như Thế Nào?
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Gửi email bài đăng nàyBlogThis!Chia sẻ lên XChia sẻ lên Facebook
Bài đăng Mới hơn Bài đăng Cũ hơn Trang chủ

0 Comments:

Đăng nhận xét



Popular Posts

  • Hướng dẫn cách xóa tài khoản Facebook vĩnh viễn, không thể khôi phục lại
    Làm sao để xóa vĩnh viễn tài khoản Facebook khi không còn muốn sử dụng Facebook nữa, bài viết này sẽ hướng dẫn bạn. Facebook hiện nay đã v...
  • 5 Buildings To Visit in University Campuses (Singapore)
    In Singapore, you can visit a lot of places to appreciate architecture. This list is composed of my top five structures to visit in universi...
  • Monsoon trip to Raigad Fort – King of Forts
    I have been to the Raigad fort twice for a day trip but had never explored the entire fort. In this monsoon, a 2 day trip to the Raigad fort...
  • Itinerary India & Kashmir April 2019 (Day 1)
    Fakta mengenai Kashmir :  95% penduduk Kashmir adalah Muslim. Tak payah risau makanan di sana, semuanya halal.  Penduduk Kashmir sanga...
  • Bombay To Beijing By Bicycle-- A Guest Post By Russell McGilton
    The first time I arrived in India it was 1969 and the world was changing around me and inside me. I drove in my VW van from Europe and I sta...
  • The Island of FÖHR - every village a home
    Föhr - every village a home: What's that all about? I'm not able to figure out Föhr's strongest suit - there are so many great t...
  • Trip to Phansad Wildlife Sanctuary and Revdanda
    After a trip to Blackbuck national park Velavadar, I wanted to visit one more wildlife sanctuary. Due to lack of leaves, I decided to visit ...

Copyright © Phong Vũ Blog | Powered by Blogger
Design by Hardeep Asrani | Blogger Theme by NewBloggerThemes.com | Distributed By Gooyaabi Templates