Tải bản đầy đủ (.pdf) (11 trang)

Đề cương ôn tập kỹ thuật vi xử lý

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (189.61 KB, 11 trang )

Dethisinhvien.com

1.Chế độ địa chỉ vi xử lý là gì? Các loại chế độ địa chỉ(7
loại).
- Là cách cpu tổ chức các toán hạng của lệnh
* Chế độ địa chỉ thanh ghi:
- sử dụng các thanh ghi CPU như các toán hạng để chứa dữ liệu cần thao tác.
- các toán hạng gốc và đích đều là các thanh ghi
VD: MOD BX DX ; DX <-BX
* Chế độ địa chỉ tức thì:
- toán hạng đích là 1 thanh ghi hay 1 ô nhớ,
- toán hạng gốc là 1 hằng số
VD: MOD [BX] 200 ; Chuyển 200 vào ô nhớ có địa chỉ là DS: BX
* Chế độ địa chỉ trực tiếp:
- toán hạng là 1 hằng biểu diễn địa chỉ lệch (offset) của ô nhớ
- toán hạng còn lại có thể là thanh ghi (ko được là ô nhớ)
VD: MOD AL, [8088H]
* Chế độ địa chỉ tương đối chỉ số:
- 1 toán hạng là địa chỉ ô nhớ
+ Địa chỉ ô nhớ được tạo bởi việc sd thanh ghi cơ sở SI hoặc DI và 1 hằng
số
+ Hằng số trong địa chỉ tương đối cơ sở biểu diễn các giá trị dịch chuyển
được dùng để tính địa chỉ hiệu dụng của các toán hạng trong các vùng nhớ DS
- toán hạng còn lại có thể là thanh ghi (ko được là ô nhớ)
VD: MOD AL, [SI +100] ; AL <- [DS:SI+100]
* Chế độ địa chỉ tương đối chỉ số cơ sở:
- 1 toán hạng là địa chỉ ô nhớ
+ Địa chỉ của ô nhớ được tạo bởi việc sd các thanh ghi BX + SI/DI hoặc
BP + SI/DI và 1 hằng số.
+ Hằng số trong địa chỉ tương đối cơ sở biểu diễn các giá trị dịch chuyển
dược dùng để tính địa chỉ hiệu dụng của các toán hạng trong các vùng nhớ DS và


SS
- toán hạng còn lại có thể là thanh ghi không được là ô nhớ
VD: MOD AL, [BX +SI +100] ; AL<-[DS: BX + SI +100]
* Chế độ địa chỉ gián tiếp qua thanh ghi
- 1 toán hạng là thanh ghi chứa địa chỉ lệch của ô nhớ
- toán hạng còn lại có thể là thanh ghi hoăc hằng (ko được là ô nhớ)
VD: MOD AL, [BX] ; AL <- [DS: BX]
* Chế độ địa chỉ tương đối cơ sở
- 1 toán hạng là địa chỉ của ô nhớ

1


Dethisinhvien.com

+ địa chỉ của ô nhớ được tạo bởi việc sử dụng thanh ghi cơ sở như BX hoặc
BP và 1 hằng số.
+ Hằng số trong đc tương dối cơ sở biểu diễn các giá trị dịch chuyển được
dùng để tính địa chỉ hiệu dụng của các toán hạng trong các vùng nhớ DS và SS
- toán hạng còn lại có thể là thanh ghi (ko dược là ô nhớ)
VD: MOD AL, [BX + 100] ; AL <- [DS: BX +100]

2. Các công nghệ mới
2.1 Advanced Smart Cache :
+ Chia sẻ dữ liệu: Nếu các nhân có nhu cầu xử lý cùng 1 đơn vị dữ liệu, chỉ
1 copy của dữ liệu được nạp vào cache chia sẻ.
+ Giảm lưu lượng vận chuyển trên bus hệ thống: Yêu cầu tải dữ liệu trên
bus giảm do các hân có thể dùng chung dữ liệu.
+ Dung lượng cache được dùng hiệu quả hơn:
- Không có biên giới cứng phân chia cache giữa các nhân

- Nếu 1 nhân có yêu cầu dữ liệu xử lý lớn hơn các nhân khác, nó sẽ
được cấp dung lượng cache nhiều hơn -> tận dụng được không
gian rảnh rỗi của cáche
+ Tăng hiệu năng: Do không gian cache được sử dụng hiệu quả hơn ->
không gian cache hiệu dụng lớn hơn -> cạnh tranh trong cache giảm -> tăng
hệ số hit -> tăng hiệu năng hệ thống.
* Bộ nhớ cache chia sẻ trong các vi xử lý đa nhân sử dụng công nghệ Ađvance
Smart Cache có những ưu và nhược điểm gì so với cache độc lập cho mỗi
nhân vi xử lý? giải thích?
Trả lời:
- Ưu điểm:
+ giảm lưu lượng vận chuyển trên bit hệ thống
+ Nếu 1 nhân có yêu cầu dữ liệu xử lý lớn hơn các nhân khác, nó sẽ
được cấp dung lượng cache nhiều hơn -> tận dụng được không gian rảnh rỗi
của cáche
+ Tăng hiệu năng: Do không gian cache được sử dụng hiệu quả hơn > không gian cache hiệu dụng lớn hơn -> cạnh tranh trong cache giảm ->
tăng hệ số hit -> tăng hiệu năng hệ thống.
- Nhược điểm:
+ Khi nhiều nhân trong 1 cache thì dẫn đến xung đột cao hơn trong 1
cache
+ Khó điều khiển hơn
2.2 Thực thi không trật tự:
2


Dethisinhvien.com

2.2.1 Thực thi trật tự(thực thi tĩnh):
- Các lệnh của chương trình được nạp, giải mã, thực hiện, kết thúc theo trật tự của
các lệnh được viết ra.

- Nếu có 1 lệnh bị dừng thực hiện ,tất cả các lệnh phía sau đều bị dừng
- Các lệnh được lập lịch thực hiện tĩnh.
* Cơ chế hoạt động lệnh theo trật tự:
+ Lệnh được đọc từ bộ nhớ và được giải mã
+ Nếu các toán hạng của lệnh đã sẵn sàng, lệnh được chuyển đến các đơn vị
chức năng phù hợp để thực hiện
+ Nếu các toán hạng của lệnh chưa sẵn sàng ở chu kỳ đồng hồ hiện tại, CPU
sẽ dừng và chờ cho đến khi các toán hạng của lệnh sẵn sàng.
+ Lệnh được thực hiên bởi đơn vị chức năng
+ Kết quả thực hiện lệnh được lưu vào tập thanh ghi
* Ưu nhược điểm:
- Ưu điểm: Tổ chức thực thi đơn giản do có thể dùng kỹ thuật lập lịch thực thi tĩnh
- Nhược điểm:
+Chậm do nếu 1 lệnh nào đó bị dừng do các toán hạng của nó chưa sẵn
sàng thì tất cả các lệnh tiếp theo phải chờ
+ Nếu lệnh được thực thi theo cơ chế ống lệnh thì lệnh bị dừng có thể làm
ngưng trệ hoạt động cả ống lệnh và làm giảm đáng kể hiệu suất thực hiện lệnh.
2.2.2 Thực thi không theo trật tự(thực thi động):
- Các lệnh của chương trình được nạp và giải mã theo trật tự của chúng sau biên
dịch
- Các lệnh của chương trình sau giải mã có thể được thực hiện theo trật tự khác
với trật tự của chúng sau biên dịch
- Các lệnh của chương trình sau thực hiện được sắp xếp lại để kết thúc theo trật tự
như khi chúng được nạp vào
- Nếu có 1 lệnh bị dừng thực hiện các lệnh độc lập ở phía sau có thể được đẩy lên
để thực hiện trước
- Các lệnh được lập lịch thực hiện động
* Ý tưởng của công nghệ thực thi không theo trật tự:
- Cho phép các lệnh thực hiện không theo trật tự chương trình, nếu các tham
số/toán hạng đâù vào của chúng đã sẵn sàng

- Các lệnh phải được hoàn tất ở giai đoạn lưu kết quả theo trật tự chương trình để
đảm bảo kết quả thực hiện lệnh và kết quả cả chương trình là đúng.
* Cần phải tách giai đoạn thực hiện lệnh và giai đoạn hoàn tât
* Cơ chể thực thi không theo trật tự:

3


Dethisinhvien.com

- Lệnh được đọc từ bộ nhớ và được giải mã
- Lệnh được gửi đến hàng đợi lệnh - thường gọi là trạm dự phòng
- Lệnh chờ ở hàng đợi lệnh cho đến khi các toán hạng đầu vào của nó sẵn
sàng. Sau đó lệnh được phép dời khỏi dời khỏi hàng đợi lệnh, có thể trước các
lệnh đứng trước
- Lệnh được gửi đến đơn vị chức năng và được thực hiện
- Các kết quả thực hiện lệnh được xếp hàng
- Chỉ sau khi kết quả cảu các lệnh đứng trước được ghi vào tập thanh ghi,
kết quả của lệnh mới được ghi vào tập thanh ghi. Đây được gọi là giai đoạn thu
hồi kết quả.
* Ưu điểm:
- Tăng tốc độ thực thi lệnh chờ
- Giảm đến tối thiểu thời gian chờ thực hiện
- Tận dụng tối đa năng lực của đơn vị thực hiện lệnh
- Nếu có một lệnh phải dừng do chưa đủ điều kiện thực hiện, các lệnh phía
sau nếu đủ điều kiện sẽ được đẩy lên thực hiện trước.
* Nhược điểm:
- Phức tạp hơn thực thi theo trật tự do phải bổ sung thêm:
+ Khối cấp phát và đổi tên thanh ghi
+ Bộ lập lịch động

+ Bộ sắp xếp lại và bộ thu hồi kết quả

4


Dethisinhvien.com

* Tại sao công nghệ thực thi không theo trật tự cho phép thực hiện các lệnh
của chương trình nhanh hơn công nghệ thực thi theo trật tự?
- Thực thi không trật tự nhắm đến mục đích tiện nhanh trong bộ nhớ chương trình,
làm các mô tơ thực hiện luôn bận rộn khi có lệnh đang chạy mà phải chờ các điều
kiện thực hiên ví dụ chờ 1 toán hạng hoặc các lệnh khác thì các lệnh sau đó nếu đã
sẵn sàng sẽ được đẩy lên trước và thực hiện, do vậy giảm tối thiểu thời gian chờ
thực hiện và tăng tốc độ thực hiện chung của các lệnh
- Trong các mô tơ thực hiện auto order thì nó được tách các khâu thực hiện lệnh
và khâu kết quả ra làm 2 loại, tuy nhiên thời gian thực hiện các lệnh dài hơn rất
nhiều so với thời gian thu được kết quả, thời gian chờ thực hiện tốn kém hơn hơn
rất nhiều so với thời gian chờ ở kết quả, thời gian chờ đơn vị thực hiện lệnh là nhỏ
nhất, gần như không phải chờ
- Còn trong thực thi theo trật tự thì nếu gặp bế tắc không thực hiện được thì đằng
sau nó cũng không thực hiện được. Khả năng làm viêc của thực thi trật tự là 50%
còn thực thi ko theo trật tự là 80% làm việc.
2.3 Công nghệ siêu phân luồng:
- Công nghệ siêu phân luồng là công nghệ cho phép nhiều luồng thực hiện trên 1
CPU vật lý
- Công nghệ siêu phân luồng được thiết kế nhằm cải thiện khả năng xử lý song
song
+ Mỗi CPU/ 1 nhân vật lý có khả năng thực hiện 2 luồng ảo
+ Các luồng ảo có khả năng chia sẻ tài nguyên
- Công nghệ siêu phân luồng được thực hiện băng 2 cách

+ Mỗi CPU ảo có 1 số thành phần riêng thường là lưu trạng thái kiến trúc
gồm đầy đủ các thanh ghi của nó, thanh ghi dữ liệu, đoạn, điều khiển và debug
+ Các CPU ảo chia sẻ thực hiện lệnh của CPU vật lý
- Hệ điều hành nhìn thấy 1 CPU hỗ trợ công nghệ siêu phân luồng
+ Cho phép HĐH lập lịch xử lý các luồng song song trên các CPU ảo
+ Khi một luồng bị dừng vì một lý do nào đó, HĐH có thể cấp phát tài
nguyên của CPU vật lý cho luồng khác, giúp cải thiện hiệu năng.
- Tối ư hoá HĐH trong hệ thống hỗ trợ siêu phân luồng:
+ 1 hệ thống có 2 CPU vật lý, cho CPU vật lý hỗ trợ 2 CPU ảo -> tổng cộng
có 4 CPU ảo
+ Nếu bộ lập lịch của HĐH ko hỗ trợ siêu phân luồng, nó sẽ coi 4 CPU ảo
là ngang nhau.
+ Nếu tại 1 thời điểm chỉ có yêu cầu chạy 2 luồng thực hiện, HĐH có thể
chọn 2 CPU ảo của cùng 1 CPU vật lý chạy 2 luồng này.

5


Dethisinhvien.com

+ Kết quả 1 CPU vật lý thì tải rất cao, còn CPU kia thì rỗi -> hiệu năng có
thể kém hơn hthống hỗ trợ siêu phân luồng.
+ Để tránh hiện tượng này, HĐH phải có khả năng phân biệt CPU vật lý và
CPU ảo để lập lịch cho phù hợp
- Hiệu năng của siêu phân luồng:
+ Cải thiện hiệu năng cho các ứng dụng đa luồng
+ Cho phép nhiều luồng được thực hiện đồng thời
+ Cải thiện được khả năng đáp ứng của ứng dụng
+ Hiệu năng phụ thuộc vào ứng dụng nếu chạy đồng thời 2 chương trình
nặng tải thì 1 hoặc cả 2 chạy chậm hơn khi có công nghệ này

2.4 Công nghệ ảo hoá:
- Là sự kết hợp của các công nghệ phần cứng và phần mềm để tạo ra các máy ảo
- Cho phép trừu tượng hoá phần cứng để 1 máy tính có thể hoạt động giống như
nhiều máy tính
* ưu điểm:
- Giảm số máy vật lý, nhưng vẫn đảm bảo số nền tảng đa dạng theo yêu cầu
- Tiết kiệm không gian vật lý, điện năng và các tiện ích phục vụ khác
- Hữu ích trong việc phát triển và kiểm thử phần mềm - cần nhiều môi trường test
- Hỗ trợ việc cân bằng tải động và khôi phục sau sự cố
- Được sử dụng nhiều trong điện toán đám mây -> dịch vụ tài nguyên phần cứng

3.Các phương pháp vào ra dữ liệu:
3.1 Cơ chế vào ra bằng thăm dò:
- CPU quản lý danh sách các thiết bị vào ra kèm theo địa chỉ các cổng giao tiếp
- Các thiết bị vào ra định kỳ cập nhật trạng thái sẵn sàng làm việc của mình lên
các bit cờ trạng thái vào ra của mình
- Cpu định kỳ lần luợt quet các thiết bị ra để đọc các bit cờ trạng thái vào ra
- CPU là bên chủ động trong quá trìn trao đổi dữ liệu
* Ưu điểm:
- Đơn giản, dễ cài đặt
- Có thể được cài đặt bằng phần mềm
* Nhược điểm:
- Hiệu quả thấp do CPU tốn nhiều thời gian để thăm dò các thiết bị
- Không thực sự khả thi khi có nhiều thiết bị trong danh sách
* Ứng dụng của vào ra bằng thăm dò
- Thăm dò thường được sử dụng khi hệ thống khởi động: CPU thăm dò hầu hết
các thiết bị để xác lập cấu hình

6



Dethisinhvien.com

- Thăm dò được sử dụngtrong quá trình hoạt động với các thiết bị rời như ổ đĩa
CD/DVD, ổ mềm,…
*Vào do băng thăm dò – không ưu tiên
- Ba thiết bị A,B,C được thăm dò không ưu tiên
- CPU quét tất cả các thiêt bị trong 1 chu trình thăm dò
- CPU có thể trao đổi dữ liệu với nhiều hơn 1 thiết bị trong 1 chu trình thăm do
- Các thiết bị được thăm lần lượt , không phụ thuộc vào thiết bị đứng trước chu
trình
- CPU bắt đầu 1 chu trình thăm dò mới sau khi đã quét qua tất cả các thiêt bị
* Vào ra thăm dò – có ưu tiên
- Ba thiết bị A,B,C được thăm dò có ưu tiên theo thứ tự A,B,C
- CPU có thể quét tất cả các thiết bị trong 1 chu trình thăm dò
- CPU chỉ trao đổi dữ liệu với tối đa 1 thiết bị trong 1 chu trình thăm dò
- Các thiết bị có mức ưu tiên cao luôn được thăm trước
- Các thiết bị có mức ưu tiên thấp chỉ được thăm nếu các thiết bị đứng trước nó
không sẵn sàng
- CPU bắt đầu 1 chu trình thăm dò mới ngay sau khi trao đổi dữ liệu với 1 thiết bị
3.2 Vào ra bằng ngắt:
- Ngắt là gì?
+ Ngắt là 1 sự kiện mà CPU tạm dừng thực hiện 1 chương trình để thực
hiện 1 đoạn chương trình khác theo yêu cầu từ bên ngoài
+ Thông thường các yêu cầu từ bên ngoài thường xuất phát từ các thiết bị
vào ra. Các yêu cầu này gọi là các yêu cầu ngắt
+ Đoạn chương trình CPU thực hiện trong thời gian ngắt được gọi là
chương trình con phục vụ ngắt
- Các CTCPVN là các đoạn chương trình:
+ Được viết sẵn và lưu trong ROM

+Mỗi CTCPVN có nhiệm vụ riêng và thường là đảm nhiệm việc trao đổi dữ
liệu với thiêt bị vào ra.
- Khi nào CPU kiểm tra và xử lý ngắt: CPU kiểm tra yêu cầu ngắt tại chu kỳ đồng
hồ cuối cùng của chu kỳ lệnh
- Phân loại ngắt:
+ Ngắt cứng: là các ngắt được kích hoạt bởi các bộ phận phần cứng gửi đến
chân NMI và INTR của CPU gồm:
- Ngắt ko che được NMI: ngắt gửi đến chân NMI của CPU, ko chịu
sự ảnh hưởng của cờ ngắt. VD: ngắt reset

7


Dethisinhvien.com

- Ngắt che được INTR : ngắt gửi đến chân INTR của CPU, chịu sự
chi phối của cờ ngắt. CỜ IF =1 -> cho phép ngắt, IF=0 -> cấm
ngắt
+ Ngắt mềm : là các ngắt đuợc kích hoạt bởi các chương trình thông qua
lệnh gọi ngăt INT <N> N là số hiệu ngắt, N=0-255.
+ Các ngắt ngoại lệ: là các ngắt do các lỗi nảy sinh trong quá trình hoạt
động của CPU
- Trật tự ưu tiên trong xử lý các yêu cầu ngắt
+ Các yêu cầu ngắt được gán 1 mức ưu tiên
+ Khi nhận được nhiều yêu cầu ngắt đồng thời, CPU sẽ xử lý chúng theo
mức ưu tiên định trước.
- Mức ưu tiên các yêu cầu ngắt (từ cao nhất đến thấp nhất)
+ Ngắt nội bộ
+ Ngắt ko che được NMI
+ Ngắt che được INTR

+ Ngắt chạy từng lệnh
- Vxl 8086/8088 có 256 ngắt được đánh số từ 0-255
- 1 Vector ngắt gồm các thông tin:
+ SỐ hiệu ngắt N, N=0-255 hoặc 00-FFH
+ Địa chỉ đầy đủ chương trình con phục vụ ngắt lưu trong bộ nhớ ROM
+ Bảng vector ngắt lưu thông tin về 256 vector ngắt. Mỗi bản ghi của bảng
gồm các thông tin:
Số liệu ngắt
Địa chỉ đoạn và địa chỉ lện của CTCPVN
- Chu Trình xử lý ngắt
1. Khi nhận được yêu cầu ngắt, CPU thực hiện các việc:
a. Hoàn tất lệnh đang thực hiện của chương trình chính
b. Lưu gia trị của thanh ghi cờ FR vào ngăn xếp
c. Xoá cờ ngắt IF và cờ bẫy TF
d. Lưu giá trị của các thanh ghi CS và IP vào ngăn xếp
e. Từ số hiệu ngắt N, lấy địa chỉ của CTCPVN từ bảng vector ngắt
2. Nạp điạ chỉ của CTCPVN vào CS và IP, CPU thực hiện CPCPVN gồm:
a. Lưu giá trị các thanh ghi dùng chung vào ngăn xếp
b. Thực hiện mã chính của CTCPVN
c. Khôi phục giá trị các thanh ghi dùng chung
3. Gặp lệnh IRET kết thuc CTCPVN, CPU thực hiện các việc:
a. Khôi phục giá trị của CS và IP
b. Khôi phục giá trị của thanh ghi cờ FR
c. Đặt cờ ngắt IF và cờ bẫy TF
4.CPU tiếp tục thực hiện lệnh tiêps theo của CTC

8


Dethisinhvien.com


- Chu trình vào ra bằng ngắt
1. Thiết bị vào ra co nhu cầu trao đổi dữ liệu, gửi yêu cầu ngắt đến chân tín hiệu
của CPU
2. Khi nhận được yêu cầu ngắt, CPU thực hiện các việc:
a. Hoàn tất lệnh đang thực hiện của chương trình chính (CTC)
b. Lưu giá trị của thanh ghi cờ FR vào ngăn xếp
c. Xoá cờ ngắt IF
d. Lưu giá trị của các thanh ghi CS và IP vào ngăn xếp
e. Gửi tín hiệu xác nhận ngắt đến thiết bị vào ra qua chân tín hiệu INTA
3. Nhận được hiệu xác nhận ngắt của CPU, thiết bị vào ra gửi số hiệu ngắt N đến
CPU
4. Nhận được số hiệu ngắt N, CPU lấy địa chỉ của CTCPVN tương ứng từ bảng
vector ngắt
5. Nạp địa chỉ của CTCPVN vào CS và IP, CPU thực hiện CPCPVN, gồm:
a. Lưu giá trị các thanh ghi dùng chung vào ngăn xếp
b. Thực hiện mã chính của CTCPVN: đồng thời thực hiện việc trao đổi dữ
liệu với thiết bị vào ra
c. Khôi phục giá trị các thanh ghi dùng chung
6. Gặp lệnh IRET kết thúc CTCPVN, CPU thực hiệncác việc :
a. Khôi phục giá trị của CS và IP
b. Khôi phụ giá trị của thanh ghi cờ FR
c. Đặt cờ ngắt IF và cờ bẫy TF
7. CPU tiếp tục thực hiện lệnh tiếp theo của CTC (nằm ngay sau lệnh xảy ra ngắt)

* Ưu nhược điểm :

9



Dethisinhvien.com

- Ưu điểm:
+ Hiệu quả hơn vào ra bằng thăm dò, do CPU không phải thăm dò từng
thiết bị
- Nhược điểm:
+ Phức tạp hơn vào ra bằng thăm dò
+ Cần mạch phần cứng để điều khiển ngắt.

10


Dethisinhvien.com

3.3 Vào ra DMA
- Trong các phương pháp vào ra bằng thăm dò và ngắt thiết bị vào ra trao đổi dữ
liệu với bộ nhớ thông qua CPU
- Phương pháp vào ra bằng DMA cho phép thiết bị vào ra trao đổi dữ liệu trực tiếp
với bộ nhớ theo khối, không thông qua CPU.
- DMA thích hợp khi cần trao đổi dữ liệu với khối lượng lớn trong khoảng thời
gian ngắn.
- DMAC (DMA Controller) thay mặt CPU điều khiển quá trình trao đổi dữ liệu
trực tiếp giữa thiết bị vào ra và bộ nhớ.
- DMA có tốc độ cao hơn nhiều lần so với vào ra bằng thăm dò và ngắt.Ví dụ , vơi
VXL 8088
+ Vào ra bằng DMA mất 4 chu kỳ đồng hồ để chuyển 1 byte thiết bị ngoại
vi vào bộ nhớ
+ Vào ra thông qua CPU mất 39 chu kỳ đồng hồ để chuyển1 byte thiêt bị
ngoại vi vào bộ nhớ.
Số chu kỳ đồng hồ

LAP: MOV AL,[SI];
10
OUT PORT,AL; 10
INC SI;
2
LOOP LAP;
17
Cộng:
39 chu kỳ
* Ưu nhược điểm của DMA
- Ưu điểm:
+ Hiệu suốt rất cao do dữ liệu được trao đổi trực tiếp theo khối giữa thiết bị
vào ra và bộ nhớ không thông qua CPU
- Nhược điểm:
+ Phức tạp hơn vào ra bằng thăm dò và ngắt
+ Cần mạch phần cứng để điều khiển quá trình DMA

Tài liệu được tạo bởi iuiuadu_93, D11CN7.

11



×