Tải bản đầy đủ (.docx) (13 trang)

cấu trúc mạng CACHE MEMORY

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 (294.22 KB, 13 trang )

1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ - ĐHQGHN
KHOA CƠ HỌC KỸ THUẬT VÀ TỰ ĐỘNG HÓA
-------------o0o-------------

TIỂU LUẬN MÔN KIẾN TRÚC MÁY TÍNH
VÀ MẠNG TRUYỀN THÔNG
CÔNG NGHIỆP
ĐỀ TÀI: CACHE MEMORY


2

Lời mở đầu
Chúng ta đang ở trong kỷ nguyên thông tin. Ngày nay không còn ai nghi ngờ gì
vai trò của thông tin trong đời sống, trong khoa học kỹ thuật, kinh doanh cũng như
trong mọi mặt vận động của xã hội, dưới mọi quy mô, từ xí nghiệp công ty cho đến
quốc gia và cả quốc tế. Việc nắm bắt thông tin thật nhanh, nhiều chính xác và kịp thời
ngày càng đóng vai trò cốt yếu trong quản lý, điều hành.
Hẳn nhiều người ít khi biết một chiếc máy tính hoạt động như thế nào và theo
quy trình quy tắc nào, để giúp mọi người biết và hiểu hơn về các thiết bị máy cùng cách
hoạt động ra sao, nhóm chúng tôi xin được phép nói sâu về bộ nhớ máy chi tiết hơn đó
là bộ nhớ đệm (cache memory). Ta lần lượt nghiên cứu các thành phần cũng như chức
năng của bộ nhớ đệm:
i.

Computer system memory overview (bộ nhớ hệ thống máy tính tổng quan)

ii.


Cache memory principles (các nguyên tắc nhớ cache)
Cuối cùng ta xem ví dụ nghiên cứu về tổ chức bộ nhớ cache trong pentium II để

hiểu rõ hơn.

Cache memory
I. Computer sytem memory overview (Tổng quan bộ nhớ máy


3

tính)
1. Bộ nhớ (memory)
Các đặc trưng của bộ nhớ
- Vị trí: bộ nhớ là thiết bị nhớ có thể ghi và chứa thông tin như ROM, RAM, cache, đĩa
cứng, đĩa mềm, CD.... đều có thể gọi là bộ nhớ (vì chúng đều lưu trữthông tin).
- Dung lượng: khả năng lưu trữ dữ liệu của thiết bị. Với bộ nhớ trong, dung lượng
thường được biểu diễn dưới dạng byte. (1 byte = 8 bit) hay word. Các độ dài word phổ
biến là 8, 16, và 32 bit. Bộ nhớ ngoài có dung lượng được biểu thị theo byte. Ví dụ: CD
chứa được 700MB, đĩa mềm chứa được 1.44MB, đĩa cứng chứa được 40 GB, 60GB,
cache L1 chứa được 16KB, cache L2 chứa được 256 KB ...
- Đơn vị truyền: từ nhớ và khối nhớ. - Giao tiếp: cấu trúc bên ngoài của bộ nhớ. Ví dụ,
các RAM có số chân cắm và đặc tính khác nhau.
- Phương pháp truy nhập: truy nhập tuần tự (băng từ), truy nhập trực tiếp (các loại đĩa),
truy nhập ngẫu nhiên (bộ nhớ bán dẫn), truy nhập liên kết (cache).
- Kiểu bộ nhớ vật lý: bộ nhớ bán dẫn, bộ nhớ từ, bộ nhớ quang.
- Các đặc tính vật lý: khả biến, không khả biến, xoá được, không xoá được.
- Hiệu năng: thời gian truy nhập, chu kỳ truy xuất bộ nhớ, tốc độ truyền.

2. Phân loại bộ nhớ

2.1. Bộ nhớ trong: là bộ nhớ thường được tổ chức từ nhiều vi mạch nhớ ghép lại để có
độ rộng bus địa chỉ và dữ liệu cần thiết.
a. Bộ nhớ chỉ đọc (ROM: Read Only Memory) -Ðây là loại bộ nhớ không khả biến
dùng trong các hãng sãn xuất là chủ yếu. Nó có đặc tính là thông tin lưu trữ trong ROM
không thể xoá được và không sửa được, thông tin sẽ được lưu trữ mãi mãi. Nhưng
ROM có bất lợi là một khi đã cài đặt thông tin vào rồi thì ROM sẽ không còn tính đa
dụng. Ví dụ điển hình là các con "chip" trên motherboard hay là BIOS ROM để vận
hành khi máy tính vừa khởi động. Các kiểu ROM:
- PROM (Programmable ROM)
- EPROM (Erasable Programmable ROM)


4

- EEPROM (Electrically Erasable Programmable ROM)
- Flash Memory
b. Bộ nhớ đọc ghi (RAM: Random Access Memory)
- RAM là thế hệ kế tiếp của ROM, cả RAM và ROM đều là bộ nhớ truy xuất ngẫu
nhiên, tức là dữ liệu được truy xuất không cần theo thứ tự. Tuy nhiên ROM chạy chậm
hơn RAM rất nhiều. Thông thường ROM cần trên 50ns để xử lý dữ liệu trong khi đó
RAM cần dưới 10ns.
Có 2 loại chính: RAM tĩnh (SRAM: Static RAM) và RAM động (DRAM: Dynamic
RAM):
- SRAM (RAM tĩnh) là loại RAM lưu trữ dữ liệu không cần cập nhật thường xuyên
trong khi đó DSRAM (RAM động) là loại RAM cần cập nhật dữ liệu thường xuyên.
Thông thường dữ liệu trong DRAM sẽ được làm tươi (refresh) nhiều lần trong một giây
để giữ lại những thông tin đang lưu trữ, nếu không thì dữ liệu trong DRAM cũng sẽ bị
mất do hiện tượng rò rỉđiện tích của các tụ điện. Các khác biệt của SRAM so với
DRAM:
- Tốc độ của SRAM lớn hơn DRAM do không phải tốn thời gian refresh.

- Chế tạo SRAM tốn kém hơn DRAM nên thông thường sử dụng DRAM để hạ giá
thành sản phẩm.
Các kiểu RAM:
- FPM - DRAM (Fast Page Mode DRAM)
- EDO - DRAM (Extended Data Out DRAM)
- BDEO-DRAM (Burst Extended Data Out DRAM)
- SDRAM (Synchronous DRAM)
- DDR SDRAM (Double Data Rate SDRAM)
- DRDRAM (Direct Rambus DRAM)
- SLDRAM (Synchronous - Link DRAM)
- VRAM (Video RAM)
- SGRAM (Synchronous Graphic RAM)

2. Bộ nhớ cache (cache memory)
a. Cache: là một cơ chế lưu trữ tốc độ cao đặc biệt. Nó có thể là một vùng lưu trữ của
bộ nhớ chính hay một thiết bị lưu trữ tốc độ cao độc lập. Có hai dạng lưu trữ cache
được dùng phổ biến trong máy tính cá nhân là memory cache (bộ nhớ cache hay bộ nhớ
truy xuất nhanh) và disk cache (bộ nhớ đệm đĩa).


5

b. Memory cache: Đây là một khu vực bộ nhớ được tạo bằng bộ nhớ tĩnh (SRAM) có
tốc độ cao nhưng đắt tiền thay vì bộ nhớ động (DRAM) có tốc độ thấp hơn và rẻ hơn,
được dùng cho bộ nhớ chính. Cơ chế lưu trữ bộ nhớ cache này rất có hiệu quả. Bởi lẽ,
hầu hết các chương trình thực tế truy 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 trong SRAM, máy tính sẽ khỏi phải truy
xuất vào DRAM vốn chậm chạp hơn.
c. Disk cache:
Bộ nhớ đệm đĩa cũng hoạt động cùng nguyên tắc với bộ nhớ cache, nhưng thay vì dùng

SRAM tốc độ cao, nó lại sử dụng ngay bộ nhớ chính. Các dữ liệu được truy xuất gần
đây nhất từ đĩa cứng sẽ được lưu trữ trong một buffer (phần đệm) của bộ nhớ.
Khi chương trình nào cần truy xuất dữ liệu từ ổ đĩa, nó sẽ kiểm tra trước tiên trong bộ
nhớ đệm đĩa xem dữ liệu mình cần đang có sẵn không. Cơ chế bộ nhớ đệm đĩa này có
công dụng cải thiện một cách đáng ngạc nhiên sức mạnh và tốc độ của hệ thống. Bởi lẽ,
việc truy xuất 1 byte dữ liệu trong bộ nhớ RAM có thể nhanh hơn hàng ngàn lần nếu
truy xuất từ một ổ đĩa cứng. Và hiệu năng của một cache được tính bằng hit rate (tốc độ
tìm thấy dữ liệu trong cache).

2.3 Bộ nhớ ngoài
- Bộ nhớ chính bằng vật liệu bán dẫn không thể lưu trữ một khối lượng rất lớn dữliệu
nên cần phải có thêm các thiết bị nhớ bên ngoài như đĩa từ, đĩa mềm, đĩa cứng, đĩa
quang, băng giấy đục lỗ, băng cassette, trống từ...
a. Đĩa từ là một tấm đĩa tròn, mỏng làm bằng chất dẻo, thủy tinh cứng hay kim loại
cứng, trên đó có phủ một lớp bột từ tính oxide sắt từ. Đĩa từ sử dụng kỹ thuật ghi từ để
lưu trữ dữ liệu. Khi đã ghi dữ liệu trên đĩa, dữ liệu có thể tồn tại khi không còn nguồn
cung cấp và cũng có khả năng xóa đi, thay thế bằng dữ liệu mới.
b. Đĩa mềm gồm một đĩa từ bằng nhựa dẻo được bảo vệ bằng một bao giấy hay nhựa
cứng. Trên bao có khoét một lỗ dài cho phép đầu đọc của ổ đĩa có thể tiếp xúc với mặt
đĩa để đọc / ghi dữ liệu. Có 2 loại đĩa mềm: đường kính 5.25 inch (hầu như không còn
sử dụng) và đường kính 3.5 inch (chỉ dùng dung lượng 1.44 MB).
c. Đĩa cứng (HDD: Hard Disk Driver) là thành phần quan trọng lưu trữ hệ điều hành và


6

các phần mềm tiện ích máy tính. Một máy tính có thể một đĩa hoặc nhiều đĩa, dung
lượng mỗi đĩa rất lớn từ 200MB đến 120GB.Tốc độ đọc ghi nhanh so các bộ nhớ ngoài
khác. Dữ liệu được lưu trữ phân tán trên tất cả các đĩa. Có thể tạo và lưu trữ thông tin
dư thừa nhằm mục đích cho việc phục hồi khi đĩa nào đó bị hỏng. Độ tin cậy trong lưu

trữ thông tin rất cao. Được sử dụng là bộ nhớ cho các hệ thống máy chủ.
d. Đĩa quang (CD-ROM, DVD) gồm CD-ROM (Compact Disk ROM), CD-R
(Recordable CD), CD-RW (Rewriteable CD) dung lượng phổ biến 650MB, Ổ đĩa CD, ổ
CD ROM: có thể đọc dữ liệu từ đĩa CD, ổ CD RW: Có thể vừa ổ đọc đĩa CD và có thể
ghi dữ liệu lên đĩa CD-R, và CD-RW. Tốc độ đọc cơ sở 150KB/s. Tốc độ bội lần: 40x,
50x, 60x, ...DVD (Digital Video Disk): chỉ dùng trên đầu đọc, DVD (Digital Versatile
Disk): dùng trên ổ đĩa máy tính dung lượng thông dụng 4.7GB.
e. Bộ nhớ Flash thường kết nối qua cổng USB, không phải dạng đĩa là bộ nhớ bán dẫn
cực nhanh, dung lượng phát triển nhanh, gọn nhẹ và tiện lợi, đặc điểm đĩa Flash.
f. RAID là cấu trúc đa đĩa vật lý để tạo nên một đĩa logic có kích thước lớn, độ tin cậy
và khả năng vận hành cao hơn.

II. Cache Memory Principles (nguyên tắc bộ nhớ cache)
1. Nguyên tắc


7

- Cache có tốc độ truy xuất nhanh hơn rất nhiều bộ nhớ chính.
- Cache được đặt giữa CPU và bộ nhớ chính nhằm tăng tốc độ trao đổi thông tin giữa
CPU và bộ nhớ chính.
- Cache thường được đặt trong chip vi xử lý.
- Bộ nhớ cache được thiết kế với ý định mang lại bộ nhớ có tốc độ xấp xỉ tốc độ của bộ
nhớ nhanh nhất hiện có, đồng thời cung cấp một kích thước bộ nhớ lớn với phí tổn ít
hơn so với các loại bộ nhớ bán dẫn. Bộ nhớ cache chứa bản sao của một phần bộ nhớ
chính. Khi CPU cố gắng đọc một từ bộ nhớ, từ này sẽ được kiểm tra xem có trong
cache hay không. Nếu có, từ đó sẽ được cung cấp ngay cho CPU. Trong trường hợp
ngược lại, một khối bộ nhớ chính, bao gồm một lượng cố định các từ sẽ được đọc vào
trong cache và sau đó từđó sẽ được cung cấp cho CPU. Do có hiện tượng tham chiếu
cục bộ, khi một khối dữ liệu được lấy vào trong cache để đáp ứng một tham chiếu đơn

lẻ, có nhiều khả năng các tham chiếu kế tiếp sẽ là các từ khác trong cùng một khối.
- Cache có thể được gắn trực tiếp trên các thiết bị ngoại vi. Các đĩa cứng hiện đại được
gắn bộ nhớ truy cập nhanh, khoảng 512 KB. Máy tính không trực tiếp sử dụng bộ nhớ
này mà là chương trình điều khiển ổ cứng. Đối với máy tính, các chip có bộ nhớ này
được coi là đĩa. Khi máy tính yêu cầu dữ liệu từ ổ cứng, chương trình quản lý đĩa sẽ
kiểm tra bộ nhớ đó trước khi di chuyển các bộ phận cơ khí của đĩa cứng (tốc độ rất
chậm so với bộ nhớ). Nếu nó tìm thấy dữ liệu mà máy tính yêu cầu trong cache, nó sẽ
cung cấp thông tin đó mặc dù không thực sự truy cập vào ổ đĩa, tiết kiệm rất nhiều thời
gian.

2. Thao tác của Cache
- CPU yêu cầu lấy nội dung của một ngăn nhớ bằng việc đưa ra một địa chỉ xác định ô


8

nhớ.
- CPU kiểm tra xem có nội dung cần tìm trong Cache.
- Nếu có: CPU nhận dữ liệu từ bộ nhớ Cache.
- Nếu không có: Bộ điều khiển Cache đọc Block nhớ chứa dữ liệu CPU cần vào Cache.
- Tiếp đó chuyển dữ liệu từ Cache đến CPU.
- Sơ đồ thao tác cache, bộ nhớ chính và CPU

3. Tổ chức Cache
- Giả sử bộ nhớ chính gồm đến 2n từ nhớ đã được đánh địa chỉ (với mỗi từ nhớ có một
địa chỉ duy nhất rộng n bit). Bộ nhớ chính chia thành M khối, mỗi khối có K từ nhớ
M=2n/K. Bộ nhớ Cache có C khe mỗi khe có K từ nhớ. (C<luôn có một tập con các khối nhớ thường trú trong cache. Nếu một từ sẽ được đọc thì
khối chứa từ đó sẽ được chuyển vào trong cache. Do số khối nhiều hơn số khe, một khe
có thể không được giành cho một khối trong thời gian lâu dài. Vì lý do đó, mỗi khe có

một thẻ cho biết khối nào đang được lưu trữ. Thẻ thường là một phần của địa chỉ bộ
nhớ chính của khối đang được giữ trong khe.
Các nguyên lý hoạt động của Cache:
Cache được coi là bộ nhớ thông minh:
Cache có khả năng đoán trước yêu cầu về lệnh và dữ liệu của CPU


9

Dữ liệu và lệnh cần thiết được chuyển trước từ bộ nhớ chính về cache -> CPU chỉ truy
nhập cache -> giảm thời gian truy nhập bộ nhớ
Cache hoạt động dựa trên 2 nguyên lý cơ bản:
Nguyên lý cục bộ/ lân cận về không gian (spatial locality)
Nguyên lý cục bộ/ lân cận về thời gian (temporal locality)
Cục bộ (lân cận) về không gian:
Nếu một vị trí bộ nhớ được truy cập, thì khả năng/ xác suất các vị trí gần đó được truy
cập trong thời gian gần tới là cao
Áp dụng với các mục dữ liệu và các lệnh có thứ tự tuần tự theo chương trình
Hầu hết các lệnh trong chương trình có thứ tự tuần tự, do đó cache đọc một khối lệnh
trong bộ nhớ, mà bao gồm cả các phần tử xung quanh vị trí phần tử hiện tại được truy
cập
Cục bộ (lân cận) về thời gian:
Nếu một vị trí bộ nhớ được truy cập, thì khả năng nó sẽ được truy cập trong thời gian
gần tới là cao
Áp dụng với các mục dữ liệu và các lệnh trong vòng lặp
Cache đọc khối dữ liệu trong bộ nhớ bao gồm tất cả các thành phần trong vòng lặp
Trao đổi dữ liệu
CPU đọc/ ghi từng mục dữ liệu riêng biệt từ/ vào cache
Cache đọc/ ghi khối dữ liệu từ/ vào bộ nhớ
Hit là sự kiện CPU truy cập tới mục dữ liệu/ mục tin mà tìm được trong cache

Xác suất xảy ra Hit được gọi là hệ số hit H
0<= H <= 1 • H càng cao thì cache càng tốt
Miss là sự kiện CPU truy cập tới mục dữ liệu mà không tìm thấy nó trong cache
Khả năng xảy ra Miss gọi là hệ số miss hay 1-H • 0<= (1-H) <= 1
Hệ số miss thấp thì hiệu quả cache cao.
Kiến trúc Cache
Cache và bộ nhớ cùng được kết nối tới bus hệ thống
Cache và bộ nhớ chính “thấy” chu kỳ bus CPU tại cùng một thời điểm
Ưu: Thiết kế đơn giản, Miss nhanh.


10

Nhược: Hit chậm.
Cache nằm giữa CPU và bộ nhớ chính
Cache “thấy” chu kỳ bus CPU trước sau đó nó “truyền” lại cho bộ nhớ chính
Ưu: Hit nhanh
Nhược: Thiết kế phức tạp, Đắt, Miss chậm.
Tổ chức Cache:
Tổ chức cache giải quyết vấn đề cache và bộ nhớ chính phối hợp làm việc với nhau
như thế nào.
Các kỹ thuật tổ chức Cache
Ánh xạ trực tiếp (direct mapping): Đơn giản, nhanh ,Ánh xạ cố định .
Ánh xạ kết hợp đầy đủ (fully associative mapping): Phức tạp, chậm, Ánh xạ linh hoạt.
Ánh xạ tập kết hợp/ theo bộ (set): (set associative mapping) , Phức tạp, Nhanh, ánh xạ
linh hoạt.
Ánh xạ trực tiếp:
Cache: Được chia thành n khối hoặc dòng (block or line), từ Line (0 tới n-1) .
Bộ nhớ:
Được chia thành m trang (page), từ page 0 tới page m-1 .

Mỗi trang bộ nhớ có kích thước bằng cache .
Mỗi trang có n lines, từ Line 0 tới Line n-1.
Ánh xạ trực tiếp (tt):
Ánh xạ:
Line 0 của (page 0 tới page m-1) được ánh xạ tới Line 0 của cache .
Line 1 của (page 0 tới page m-1) được ánh xạ tới Line 1 của cache .
Line n-1 của (page 0 tới page m-1) được ánh xạ tới Line n-1 của cache.
Địa chỉ ánh xạ trực tiếp:
Tag (bit): là địa chỉ của trang trong bộ nhớ.
Line (bit): là địa chỉ của line trong cache.
Word (bit): là địa chỉ của word trong line.
Ánh xạ trực tiếp
Ưu điểm :


11

Thiết kế đơn giản.
Nhanh vì ánh xạ cố định: khi biết địa chỉ bộ nhớ có thể tìm nó trong cache rất nhanh.
Nhược điểm:
Vì ánh xạ cố định nên khả năng xảy ra xung đột cao.
Tỷ lệ hit thấp.
Ánh xạ kết hợp (liên kết) đầy đủ:
Cache: Được chia thành n khối hoặc dòng (block or line), từ Line 0 tới Line n-1.
Bộ nhớ:
Được chia thành m khối hay dòng, từ Line 0 tới Line m-1.
Kích thước mỗi dòng cache bằng kích thước một dòng bộ nhớ.
Số lượng dòng trong bộ nhớ có thể lớn hơn nhiều số lương dòng của cache (m >>n).
Ánh xạ :
Một dòng của bộ nhớ có thể ánh xạ tới dòng bất kì của cache.

Line i của bộ nhớ có thể ánh xạ tới line j của cache.
Đọc/ ghi thông tin trong cache:
Thao tác ghi: Trường hợp tìm thấy (hit case):
Write through (ghi thẳng): mục dữ liệu được ghi vào cache và ghi vào bộ nhớ đồng
thời
Write back (ghi trễ): mục dữ liệu trước tiên được ghi vào cache và cả dòng (block)
chứa nó ở trong cache sẽ được ghi lại vào bộ nhớ sau đó, khi mà dòng đó bị thay thế.
Thao tác ghi: Trường hợp không tìm thấy (miss case):
Write allocate (ghi có đọc lại): mục dữ liệu trước hết được ghi vào bộ nhớ sau đó cả
dòng chứa nó sẽ được đọc vào cache.
Write non-allocate (ghi không đọc lại): mục dữ liệu chỉ được ghi vào bộ nhớ.
Các chính sách thay thế dòng cache:
Tại sao phải thay thế dòng cache?
Ánh xạ dòng (bộ nhớ) -> dòng (cache) thường là ánh xạ nhiều -> một.
Nhiều dòng bộ nhớ chia sẻ một dòng cache -> các dòng bộ nhớ được nạp vào cache sử
dụng một thời gian và được thay thế bởi dòng khác theo yêu cầu thông tin phục vụ
CPU.


12

Chính sách thay thế (replacement policies):
xác định cách thức lựa chọn các dòng trong cache để thay thế khi có dòng mới từ bộ
nhớ cần chuyển vào.
3 chiến lược chính:
Thay thế ngẫu nhiên (random replacement).
Vào trước ra trước FIFO (First In First Out).
Thay thế các dòng ít được sử dụng gần đây nhất LRU (Least Recently Used).
Thay thế ngẫu nhiên:
Các dòng trong cache được chọn ngẫu nhiên để thay Đơn giản Tỷ lệ miss cao vì

phương pháp này không xét tới dòng cache nào đang thực sự được sử dụng.
Nếu một dòng cache đang được sử dụng mà bị thay thế thì sự kiện miss xảy ra và cần
phải đọc lại vào cache.
Thay thế kiểu vào trước ra trước FIFO:
Dựa trên nguyên lý FIFO:
Các dòng cache được đọc vào cache trước sẽ được chọn để thay trước.
Tỷ lệ miss thấp hơn so với phương pháp ngẫu nhiên.
Tỷ lệ miss vẫn cao vì phương pháp này vẫn chưa thực sự xem xét tới block nào đang
thực sự được sử dụng.
Cài đặt phức tạp vì cần thêm mạch để giám sát thứ tự nạp các dòng bộ nhớ vào cache.
Thay thế các dòng ít được sử dụng gần đây nhất LRU.
Các dòng cache ít được sử dụng nhất trong thời gian gần đây sẽ được chọn để thay.
Xét tới các dòng đang được sử dụng:
Tỷ lệ miss thấp nhất so với phương pháp ngẫu nhiên và FIFO.
Cài đặt phức tạp vì cần thêm mạch để giám sát tần suất sử dụng các dòng cache.
Hiệu năng cache:
Thời gian truy cập trung bình của hệ thống nhớ có cache:
taccess = (Hit cost) + (miss rate) * (miss penalty)
taccess = tcache + (1 - H) * (tmemory);
H là hệ số hit Nếu tcache = 5ns
tmemory = 60ns và H=80%


13

ta có: taccess = 5 + (1 – 0.8) * (60) = 5+12 = 17ns Nếu tcache = 5ns
tmemory = 60ns và H=95%
ta có: taccess = 5 + (1 – 0.95) * (60) = 5+3 = 8ns
Các yếu tố ảnh hưởng tới hiệu năng:
Kích thước cache

Phân chia cache: một cache cho dữ liệu, một cache cho lệnh
Tạo nhiều mức cache.

========= HẾT =========



×