NUMA MultiprocessorsSingle-bus UMA multiprocessors are generally limit dịch - NUMA MultiprocessorsSingle-bus UMA multiprocessors are generally limit Việt làm thế nào để nói

NUMA MultiprocessorsSingle-bus UMA

NUMA Multiprocessors
Single-bus UMA multiprocessors are generally limited to no more than a few
dozen CPUs, and crossbar or switched multiprocessors need a lot of (expensive)
hardware and are not that much bigger. To get to more than 100 CPUs, something
has to give. Usually, what gives is the idea that all memory modules have the same
access time. This concession leads to the idea of NUMA multiprocessors, as mentioned
above. Like their UMA cousins, they provide a single address space across
all the CPUs, but unlike the UMA machines, access to local memory modules is
faster than access to remote ones. Thus all UMA programs will run without change
on NUMA machines, but the performance will be worse than on a UMA machine.
NUMA machines have three key characteristics that all of them possess and
which together distinguish them from other multiprocessors:
1. There is a single address space visible to all CPUs.
2. Access to remote memory is via LOAD and STORE instructions.
3. Access to remote memory is slower than access to local memory.
When the access time to remote memory is not hidden (because there is no caching),
the system is called NC-NUMA (Non Cache-coherent NUMA). When the
caches are coherent, the system is called CC-NUMA (Cache-Coherent NUMA).
A popular approach for building large CC-NUMA multiprocessors is the
directory-based multiprocessor. The idea is to maintain a database telling where
each cache line is and what its status is. When a cache line is referenced, the database
is queried to find out where it is and whether it is clean or dirty. Since this
database is queried on every instruction that touches memory, it must be kept in extremely
fast special-purpose hardware that can respond in a fraction of a bus cycle.
To make the idea of a directory-based multiprocessor somewhat more concrete,
let us consider as a simple (hypothetical) example, a 256-node system, each node
consisting of one CPU and 16 MB of RAM connected to the CPU via a local bus.
The total memory is 232 bytes and it is divided up into 226 cache lines of 64 bytes
each. The memory is statically allocated among the nodes, with 0–16M in node 0,
16M–32M in node 1, etc. The nodes are connected by an interconnection network,
526 MULTIPLE PROCESSOR SYSTEMS CHAP. 8
as shown in Fig. 8-6(a). Each node also holds the directory entries for the 218
64-byte cache lines comprising its 224-byte memory. For the moment, we will assume
that a line can be held in at most one cache.
Directory
Node 0 Node 1 Node 255
(a)
(b)
Bits 8 18 6
(c)
Interconnection network
CPU Memory
Local bus
CPU Memory
Local bus
CPU Memory
Local bus
Node Block Offset
0
1
2
3
4
0
0
1
0
0
218-1
82

Figure 8-6. (a) A 256-node directory-based multiprocessor. (b) Division of a
32-bit memory address into fields. (c) The directory at node 36.
To see how the directory works, let us trace a LOAD instruction from CPU 20
that references a cached line. First the CPU issuing the instruction presents it to its
MMU, which translates it to a physical address, say, 0x24000108. The MMU
splits this address into the three parts shown in Fig. 8-6(b). In decimal, the three
parts are node 36, line 4, and offset 8. The MMU sees that the memory word referenced
is from node 36, not node 20, so it sends a request message through the
interconnection network to the line’s home node, 36, asking whether its line 4 is
cached, and if so, where.
When the request arrives at node 36 over the interconnection network, it is
routed to the directory hardware. The hardware indexes into its table of 218 entries,
one for each of its cache lines, and extracts entry 4. From Fig. 8-6(c) we see that
the line is not cached, so the hardware issues a fetch for line 4 from the local RAM
and after it arrives sends it back to node 20. It then updates directory entry 4 to indicate
that the line is now cached at node 20.
SEC. 8.1 MULTIPROCESSORS 527
Now let us consider a second request, this time asking about node 36’s line 2.
From Fig. 8-6(c) we see that this line is cached at node 82. At this point the hardware
could update directory entry 2 to say that the line is now at node 20 and then
send a message to node 82 instructing it to pass the line to node 20 and invalidate
its cache. Note that even a so-called ‘‘shared-memory multiprocessor’’ has a lot of
message passing going on under the hood.
As a quick aside, let us calculate how much memory is being taken up by the
directories. Each node has 16 MB of RAM and 218 9-bit entries to keep track of
that RAM. Thus the directory overhead is about 9 × 218 bits divided by 16 MB or
about 1.76%, which is generally acceptable (although it has to be high-speed memory,
which increases its cost, of course). Even with 32-byte cache lines the overhead
would only be 4%. With 128-byte cache lines, it would be under 1%.
An obvious limitation of this design is that a line can be cached at only one
node. To allow lines to be cached at multiple nodes, we would need some way of
locating all of them,
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
NUMA MultiprocessorsXe buýt đơn UMA multiprocessors là thường hạn chế để không nhiều hơn một vàichục CPU, và xẻo hoặc chuyển sang multiprocessors cần rất nhiều (đắt tiền)phần cứng và không phải là lớn hơn nhiều. Để có được đến hơn 100 CPU, một cái gì đócó để cung cấp cho. Thông thường, những gì mang lại cho là ý tưởng rằng tất cả các module bộ nhớ có cùng mộtthời gian truy cập. Giảm giá này dẫn đến ý tưởng của NUMA multiprocessors, như đã đề cậpở trên. Giống như người Anh em họ của UMA, họ cung cấp một không gian địa chỉ trênTất cả các CPU, nhưng không giống như các máy UMA, truy cập vào các mô-đun bộ nhớ địa phươngnhanh hơn so với truy cập từ xa người thân. Do đó tất cả các chương trình UMA sẽ chạy mà không cần thay đổitrên NUMA máy, nhưng hiệu suất sẽ tồi tệ hơn trên một máy UMA.NUMA máy có ba đặc điểm chính mà tất cả chúng có vàmà cùng nhau phân biệt với multiprocessors khác:1. có được một không gian địa chỉ hiển thị cho tất cả CPU.2. quyền truy cập vào bộ nhớ từ xa là thông qua hướng dẫn tải và lưu trữ.3. truy cập vào bộ nhớ từ xa là chậm hơn so với quyền truy cập vào bộ nhớ địa phương.Khi thời gian truy cập vào bộ nhớ từ xa không thể (vì không có bộ nhớ đệm),Hệ thống được gọi là NC-NUMA (phòng không mạch lạc Cache NUMA). Khi cáclưu trữ được mạch lạc, Hệ thống được gọi là CC-NUMA (bộ nhớ Cache mạch lạc NUMA).Một phương pháp phổ biến để xây dựng lớn CC-NUMA multiprocessors là cácthư mục dựa trên sự. Ý tưởng là để duy trì cơ sở dữ liệu nói đâumỗi dòng bộ nhớ cache và những gì tình trạng của nó. Khi một dòng bộ nhớ cache được tham chiếu, cơ sở dữ liệutruy vấn để tìm ra nó ở đâu và cho dù đó là sạch hay bẩn. Kể từ đâycơ sở dữ liệu truy vấn trên mọi chỉ dẫn chạm vào bộ nhớ, nó phải được lưu giữ vô cùngnhanh chóng chuyên dụng phần cứng có thể đáp ứng trong một phần nhỏ của một chu kỳ xe buýt.Để thực hiện ý tưởng của một thư mục dựa trên sự hơi cụ thể hơn,Hãy để chúng tôi xem xét như là một ví dụ đơn giản (giả thuyết), một hệ thống 256-nút, mỗi nútbao gồm một CPU và 16 MB RAM kết nối với CPU thông qua một xe buýt địa phương.Tổng bộ nhớ là 232 byte và nó được chia ra 226 dòng bộ nhớ cache 64 bytemỗi. Bộ nhớ tĩnh được phân bổ giữa các node, với 0-16 M ở nút 0,16M-32M trong nút 1, vv. Các nút được nối với nhau bằng một mạng lưới kết nối,526 NHIỀU BỘ XỬ LÝ HỆ THỐNG CHAP 8như minh hoạ trong hình 8-6(a). Mỗi nút cũng giữ thư mục cho các 218bộ nhớ cache 64 byte dòng bao gồm bộ nhớ 224-byte của nó. Đối với thời điểm này, chúng tôi sẽ giả địnhrằng một dòng có thể được tổ chức tại hầu hết một bộ nhớ cache.Thư mụcNút 0 nốt 1 nốt 255(a)(b)Bit 8 18 6(c)Kết nối mạngBộ nhớ CPUXe buýt địa phươngBộ nhớ CPUXe buýt địa phươngBộ nhớ CPUXe buýt địa phươngNút chặn Offset0123400100218-182…Con số 8-6. (a) một 256-nút thư mục dựa trên sự. (b) bộ phận của mộtđịa chỉ bộ nhớ 32-bit vào các lĩnh vực. (c) thư mục tại nút 36.Để xem cách hoạt động của các thư mục, hãy cho chúng tôi theo dõi một chỉ dẫn tải CPU 20mà tài liệu tham khảo các dòng lưu trữ. Lần đầu tiên CPU ban hành hướng dẫn trình bày nó để nóMMU, mà dịch đến một địa chỉ vật lý, nói, 0x24000108. MMUchia ba phần Hiển thị ở hình 8-6(b), tách địa chỉ này. Trong thập phân, babộ phận là nút 36, dòng 4, và bù đắp 8. Ðến MMU tham chiếu từ bộ nhớlà từ nút 36, không nút 20, do đó, nó sẽ gửi một tin nhắn yêu cầu thông qua cáckết nối mạng để các dòng nhà node, 36, hỏi cho dù dòng 4lưu trữ, và nếu như vậy, nơi.Khi yêu cầu đến nút 36 qua kết nối mạng, nó làchuyển đến thư mục phần cứng. Danh mục phần cứng vào bảng mục 218,một cho mỗi dòng bộ nhớ cache của nó, và chất chiết xuất từ mục 4. Từ hình 8-6(c) chúng ta thấy rằngdòng không được lưu trữ, do đó, phần cứng các vấn đề tìm nạp cho dòng 4 từ RAM địa phươngvà sau khi nó đến gửi nó trở lại để node 20. Nó sau đó cập nhật các mục nhập thư mục 4 chỉrằng dòng bây giờ được lưu trữ tại nút 20.SEC. 8.1 MULTIPROCESSORS 527Bây giờ chúng ta hãy xem xét một yêu cầu thứ hai, thời gian này, yêu cầu về nút 36 của dòng 2.Từ hình 8-6(c) chúng tôi nhìn thấy dòng này được lưu trữ tại các nút 82. Tại thời điểm này là phần cứngcó thể cập nhật các mục nhập thư mục 2 nói rằng dòng bây giờ là lúc nút 20 và sau đógửi tin nhắn đến nút 82 hướng dẫn nó để vượt qua dòng với nút 20 và làm mất hiệu lựcbộ nhớ cache của nó. Lưu ý rằng ngay cả một cái gọi là '' bộ nhớ chia sẻ sự '' có rất nhiềuthư gởi sẽ về dưới mui xe.Là một sang một bên nhanh chóng, hãy cho chúng tôi tính toán bao nhiêu bộ nhớ đang được thực hiện bởi cácthư mục. Mỗi nút có 16 MB RAM và 218 9-bit mục để theo dõibộ nhớ RAM đó. Do đó chi phí thư mục là khoảng 9 × 218 bit chia 16 MB hoặckhoảng 1,76%, mà là nói chung chấp nhận được (mặc dù nó có thể bộ nhớ tốc độ cao,mà làm tăng chi phí của nó, tất nhiên). Ngay cả với bộ nhớ cache 32 byte dòng overheadsẽ chỉ là 4%. Với bộ nhớ cache 128 byte dòng, nó sẽ nhỏ hơn 1%.Một hạn chế rõ ràng của thiết kế này là một dòng có thể được lưu trữ tại chỉ mộtnút. Để cho phép dòng để được lưu trữ tại nhiều nút, chúng tôi sẽ cần một số cách đểTìm tất cả các người trong số họ,
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
Numa multiprocessors
multiprocessors Độc-bus UMA thường được giới hạn không quá một vài
chục CPU, và xà Multiprocessors chuyển cần rất nhiều (đắt tiền)
phần cứng và không phải là lớn hơn nhiều. Để có được đến hơn 100 CPU, một cái gì đó
có để cung cấp cho. Thông thường, những gì cho là ý tưởng rằng tất cả các module bộ nhớ có cùng
thời gian truy cập. Nhượng này dẫn đến ý tưởng của multiprocessors Numa, như đã đề cập
ở trên. Giống như người anh em họ UMA của họ, họ cung cấp một không gian địa chỉ duy nhất trên
tất cả các CPU, nhưng không giống như các máy UMA, tiếp cận với các mô-đun bộ nhớ địa phương là
nhanh hơn so với truy cập cho những người từ xa. Như vậy tất cả các chương trình UMA sẽ chạy mà không có sự thay đổi
trên máy Numa, nhưng việc thực hiện sẽ tồi tệ hơn trên một máy UMA.
Máy Numa có ba đặc điểm quan trọng mà tất cả chúng có và
đó cùng nhau phân biệt chúng từ multiprocessors khác:
1. Có một không gian địa chỉ duy nhất có thể nhìn thấy tất cả các CPU.
2. Truy cập vào bộ nhớ từ xa thông qua các hướng dẫn LOAD và STORE.
3. Truy cập vào bộ nhớ từ xa là chậm hơn so với truy cập vào bộ nhớ địa phương.
Khi thời gian truy cập vào bộ nhớ từ xa không được ẩn (vì không có bộ nhớ đệm),
hệ thống được gọi là NC-Numa (Non Cache-mạch lạc Numa). Khi
cache là mạch lạc, hệ thống được gọi là CC-Numa (Cache-mạch lạc Numa).
Một phương pháp phổ biến để xây dựng multiprocessors CC-Numa lớn là
đa dựa trên thư mục. Ý tưởng là để duy trì một cơ sở dữ liệu kể nơi
mỗi dòng bộ nhớ cache là gì và tình trạng của nó là. Khi một dòng bộ nhớ cache được tham chiếu, cơ sở dữ liệu
được truy vấn để tìm ra nó ở đâu và liệu có sạch hay bẩn. Vì đây
cơ sở dữ liệu được truy vấn trên mỗi lệnh mà chạm đến bộ nhớ, nó phải được giữ trong cực kỳ
phần cứng đặc biệt mục đích nhanh, có thể đáp ứng một phần nhỏ của một chu kỳ bus.
Để thực hiện ý tưởng của một đa dựa trên thư mục nào cụ thể hơn,
chúng ta hãy xem xét như là một đơn giản (giả thuyết) Ví dụ, một hệ thống 256-node, mỗi node
bao gồm một CPU và 16 MB RAM kết nối với CPU thông qua một xe buýt địa phương.
tổng bộ nhớ là 232 byte và nó được chia thành 226 dòng bộ nhớ cache 64 byte
mỗi. Bộ nhớ là tĩnh phân bổ giữa các nút, với 0-16M tại nút 0,
16M-32M trong nút 1, vv Các nút được nối với nhau bằng một mạng lưới kết nối,
526 NHIỀU PROCESSOR HỆ THỐNG CHAP. 8
như hình. 8-6 (a). Mỗi nút cũng giữ mục thư mục cho 218
dòng bộ nhớ cache 64-byte bao gồm bộ nhớ 224-byte của nó. Đối với thời điểm này, chúng tôi sẽ giả định
rằng một dòng có thể được tổ chức tại nhiều nhất một bộ nhớ cache.
Thư mục
Node 0 Node 1 Node 255
(a)
(b)
Bits 8 18 6
(c)
mạng nối
CPU Bộ nhớ
xe buýt địa phương
CPU Bộ nhớ
xe buýt địa phương
CPU Memory
xe buýt địa phương
Node Khối offset
0
1
2
3
4
0
0
1
0
0
218-1
82
...
Hình 8-6. (a) 256-node dựa trên thư mục đa. (b) Bộ phận của một
địa chỉ bộ nhớ 32-bit vào các lĩnh vực. (c) Các thư mục tại nút 36.
Để xem cách các thư mục làm việc, chúng ta hãy theo dõi một hướng dẫn TẢI từ CPU 20
mà tham khảo một dòng cache. Đầu tiên CPU ban hành hướng dẫn trình bày nó để nó
MMU, mà chuyển nó đến một địa chỉ vật lý, nói, 0x24000108. MMU
chia tách địa chỉ này vào ba phần thể hiện trong hình. 8-6 (b). Trong số thập phân, ba
phần là nút 36, dòng 4, và bù đắp 8. MMU xem sự rằng từ bộ nhớ tham chiếu
là từ nút 36, không node 20, do đó nó sẽ gửi một thông điệp yêu cầu thông qua
mạng kết nối đến nút nhà của dòng, 36 tuổi, hỏi xem dòng của nó 4 được
lưu trữ, và nếu có, ở đâu.
Khi yêu cầu đến tại nút 36 qua mạng kết nối, nó được
chuyển đến các phần cứng thư mục. Các chỉ số phần cứng vào bảng của 218 mục,
một cho mỗi dòng bộ nhớ cache của nó, và các chiết xuất nhập 4. Từ hình. 8-6 (c), chúng tôi thấy rằng
các dòng không lưu trữ, do đó, các phần cứng vấn đề tìm nạp cho dòng 4 từ RAM địa phương
và sau đó đến gửi trở lại cho nút 20. Sau đó nó cập nhật vào thư mục 4 để chỉ
rằng dòng hiện đang được lưu trữ tại nút 20.
SEC. 8.1 multiprocessors 527
Bây giờ chúng ta hãy xem xét một yêu cầu thứ hai, lần này hỏi về nút 36 của dòng 2.
Từ hình. 8-6 (c), chúng tôi thấy rằng dòng này sẽ được lưu trữ tại nút 82. Tại thời điểm này, các phần cứng
có thể cập nhật mục nhập thư mục 2 để nói rằng các dòng tại là tại nút 20 và sau đó
gửi một thông điệp tới nút 82 hướng dẫn nó để vượt qua đường tới nút 20 và mất hiệu lực
bộ nhớ cache của nó. Lưu ý rằng ngay cả một cái gọi là '' chia sẻ bộ nhớ đa '' có rất nhiều
thông qua xảy ra dưới mui xe.
Như một cách nhanh chóng sang một bên, chúng ta hãy tính toán bao nhiêu bộ nhớ đang được đưa lên bởi các
thư mục. Mỗi nút có 16 MB RAM và 218 mục 9-bit để theo dõi
RAM. Do đó, chi phí thư mục là khoảng 9 × 218 bit chia cho 16 MB hoặc
khoảng 1,76%, mà nói chung là chấp nhận được (mặc dù nó có phải là bộ nhớ tốc độ cao,
làm tăng chi phí của nó, tất nhiên). Ngay cả với dòng bộ nhớ cache 32-byte overhead
sẽ chỉ là 4%. Với dòng bộ nhớ cache 128-byte, nó sẽ là dưới 1%.
Một hạn chế rõ ràng của thiết kế này là một dòng có thể được lưu trữ tại chỉ có một
nút. Để cho phép dòng để được lưu trữ tại nhiều nút, chúng tôi sẽ cần một số cách của
vị tất cả trong số họ,
đang được dịch, vui lòng đợi..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2025 I Love Translation. All reserved.

E-mail: