memory location 4 = 1002. Therefore, the CPU must translate from virtual
address 0 to physical address 4, and uses the translation scheme described above
to do this. Note that main memory addresses contain 3 bits (there are 8 bytes in
memory), but virtual addresses (from the program) must have 4 bits (because
there are 16 bytes in the virtual address). Therefore, the translation must also convert
a 4-bit address into a 3-bit address.
Figure 6.15b depicts the page table for this process after the given pages have
been accessed. We can see that pages 0, 1, 3, and 5 of the process are valid, and
thus reside in memory. Pages 2, 6, and 7 are not valid and would each cause page
faults if referenced.
Let’s take a closer look at the translation process. Suppose the CPU now
generates program, or virtual, address 10 = 10102 for a second time. We see in
Figure 6.15a that the data at this location, “K”, resides in main memory
address 6 = 01102. However, the computer must perform a specific translation
process to find the data. To accomplish this, the virtual address, 10102, is
divided into a page field and an offset field. The page field is 3 bits long
because there are 8 pages in the program. This leaves 1 bit for the offset, which
is correct because there are only 2 words on each page. This field division is
illustrated in Figure 6.15c.
Once the computer sees these fields, it is a simple matter to convert to the
physical address. The page field value of 1012 is used as an index into the page
table. Because 1012 = 5, we use 5 as the offset into the page table (Figure 6.15b)
and see that virtual page 5 maps to physical frame 3. We now replace the 5 = 1012
with 3 = 112, but keep the same offset. The new physical address is 1102, as
shown in Figure 6.15d. This process successfully translates from virtual
addresses to physical addresses and reduces the number of bits from four to three
as required.
Now that we have worked with a small example, we are ready for a larger, more
realistic example. Suppose we have a virtual address space of 8K words, a physical
memory size of 4K words that uses byte addressing, and a page size of 1K words
(there is no cache on this system either, but we are getting closer to understanding
how memory works and eventually will use both paging and cache in our examples),
and a word size of one byte. Avirtual address has a total of 13 bits (8K = 213), with 3
bits used for the page field (there are 213
210 = 23 virtual pages), and 10 used for the
offset (each page has 210 bytes). A physical memory address has only 12 bits (4K =
212), with the first 2 bits as the page field (there are 22 page frames in main memory)
and the remaining 10 bits as the offset within the page. The formats for the virtual
address and physical address are shown in Figure 6.16a.
For purposes of this example, let’s assume we have the page table indicated
in Figure 6.16b. Figure 6.16c shows a table indicating the various main memory
addresses (in base 10) that is useful for illustrating the translation.
Suppose the CPU now generates virtual address 545910 = 10101010100112. Figure
6.16d illustrates how this address is divided into the page and offset fields and
how it is converted to the physical address 136310 = 0101010100112. Essentially, the
Results (
Thai) 1:
[Copy]Copied!
หน่วยความจำตำแหน่ง 4 = 1002 ดังนั้น CPU ต้องแปลจากเสมือน0 เพื่อกายภาพ 4 และใช้แผนแปลอธิบายไว้ข้างต้นการทำเช่นนี้ หมายเหตุว่า หน่วยความจำหลักประกอบด้วย 3 บิต (มี 8 ไบต์ในหน่วยความจำ), แต่ที่อยู่เสมือน (จากโปรแกรม) ต้องมี 4 บิต (เนื่องจากมีอยู่ 16 ไบต์อยู่เสมือน) ดังนั้น การแปลยังต้องแปลงที่อยู่ 4 บิตเป็น 3 บิตรูปที่ 6.15b แสดงให้เห็นตารางหน้าสำหรับกระบวนการนี้หลังจากหน้ากำหนดได้การเข้าถึง เราสามารถดูหน้า 0, 1, 3 และ 5 กระบวนการถูกต้อง และจึง อยู่ในหน่วยความจำ หน้า 2, 6 และ 7 ไม่ถูกต้อง และจะสาเหตุแต่ละหน้าข้อบกพร่องถ้าอ้างอิงลองมาดูใกล้ชิดในการแปล สมมติว่า CPU ตอนนี้สร้างโปรแกรม หรือที่อยู่เสมือน 10 = 10102 ครั้งที่สอง เราเห็นในรูป 6.15a ที่ตำแหน่งนี้ "K" ข้อมูลอยู่ในหน่วยความจำหลักที่อยู่ 6 = 01102 อย่างไรก็ตาม คอมพิวเตอร์ต้องทำการแปลเฉพาะกระบวนการในการค้นหาข้อมูล การทำ การเสมือน 10102 ที่อยู่แบ่งออกเป็นเขตหน้าและเขตข้อมูลตรงข้ามกัน เขตข้อมูลหน้าจะยาว 3 บิตเนื่องจากยังมี 8 หน้าในโปรแกรม บิต 1 สำหรับออฟเซ็ต ใบนี้ซึ่งถูกต้องเนื่องจากมีเพียง 2 คำในแต่ละหน้า ส่วนฟิลด์นี้ได้แสดงในรูปที่ 6.15 cเมื่อคอมพิวเตอร์เห็นเขตข้อมูลเหล่านี้ จึงเป็นเรื่องง่ายในการแปลงที่อยู่ทางกายภาพ ค่าเขตข้อมูลหน้าของ 1012 ใช้เป็นดัชนีในหน้าตาราง เนื่องจาก 1012 = 5 เราใช้ 5 เป็นออฟเซ็ตในตารางหน้า (รูป 6.15b)ดูแผนที่หน้าเสมือน 5 กับกรอบจริง 3 เราตอนนี้แทน 5 = 10123 = 112 แต่ให้ตรงข้ามกัน กายภาพใหม่เป็น 1102แสดงในรูปที่ 6.15 กระบวนการนี้สำเร็จแปลจากเสมือนเพื่อกายภาพ และลดจำนวนของบิตจากสามตามที่ต้องการที่เราได้ทำงานกับตัวอย่างขนาดเล็ก เราก็พร้อมสำหรับยิ่งใหญ่ตัวอย่างจริง สมมติว่า เรามีช่องว่างที่อยู่เสมือนคำ 8K เป็นจริงขนาดหน่วยความจำของคำ 4K ที่ใช้แก้ปัญหาไบต์ และขนาดหน้าคำ 1K(มีแคไม่บนระบบนี้อย่างใดอย่างหนึ่ง แต่เรามีการใกล้ชิดกับความเข้าใจวิธีจำทำงานในที่สุดจะใช้เพจจิ้งทั้ง และแคชในตัวอย่างของเรา),และขนาดคำหนึ่งไบต์ Avirtual อยู่มีทั้งหมด 13 บิต (8 K = 213), 3บิตที่ใช้สำหรับเขตข้อมูลหน้า (มี 213210 = 23 หน้าเสมือน), และใช้สำหรับ 10ตรงข้าม (แต่ละหน้ามี 210 ไบต์) ที่อยู่หน่วยความจำกายภาพมีเพียง 12 บิต (4K =212), มี 2 บิตแรกเป็นเขตข้อมูลหน้า (มี 22 หน้าเฟรมในหน่วยความจำหลัก)และ บิต 10 ที่เหลือเป็นออฟเซ็ตภายในหน้า รูปแบบสำหรับเสมือนรายชื่อและที่อยู่ทางกายภาพที่แสดงในรูปที่ 6.16aสำหรับวัตถุประสงค์ของตัวอย่างนี้ สมมติเรามีหน้าตารางที่ระบุในรูป 6.16b รูปที่ 6.16 c แสดงตารางแสดงหน่วยความจำหลักต่าง ๆที่อยู่ (ในฐาน 10) ที่เป็นประโยชน์สำหรับการแสดงการแปลสมมติว่าตอนนี้ CPU สร้างที่อยู่เสมือน 545910 = 10101010100112 รูปd ที่ 6.16 แสดงว่าที่อยู่นี้ถูกแบ่งออกเป็นเขตหน้าและตรงข้าม และวิธีจะถูกแปลงเป็นที่อยู่จริง 136310 = 0101010100112 หลัก การ
Being translated, please wait..
Results (
Thai) 2:
[Copy]Copied!
สถานที่ตั้งหน่วยความจำ 4 = 1002. ดังนั้น CPU ต้องแปลจากเสมือน
อยู่ 0 ถึง 4 ที่อยู่ทางกายภาพและการใช้รูปแบบการแปลที่อธิบายข้างต้น
จะทำเช่นนี้ โปรดทราบว่าอยู่หน่วยความจำที่สำคัญมี 3 บิต (มี 8 ไบต์ในมี
หน่วยความจำ) แต่อยู่เสมือน (จากโปรแกรม) จะต้องมี 4 บิต (เพราะ
มี 16 ไบต์ในที่อยู่เสมือน) ดังนั้นการแปลยังต้องแปลง
อยู่ 4 บิตเป็นอยู่ 3 บิต.
6.15b รูปแสดงให้เห็นตารางหน้าสำหรับกระบวนการนี้หลังจากที่หน้าให้มี
การเข้าชม เราจะเห็นว่าหน้า 0, 1, 3 และ 5 ของกระบวนการที่ถูกต้องและ
จึงอาศัยอยู่ในหน่วยความจำ หน้า 2, 6, 7 และจะไม่ถูกต้องและจะทำให้แต่ละหน้า
ผิดพลาดถ้าอ้างอิง.
ลองมามองใกล้ที่กระบวนการแปล สมมติว่า CPU ตอนนี้
สร้างโปรแกรมหรือเสมือนอยู่ 10 = 10102 เป็นครั้งที่สอง ที่เราเห็นใน
รูป 6.15a ว่าข้อมูลในตำแหน่งนี้ "K" อาศัยอยู่ในหน่วยความจำหลัก
ที่อยู่ 6 = 01102. อย่างไรก็ตามคอมพิวเตอร์ต้องดำเนินการแปลเฉพาะ
กระบวนการที่จะหาข้อมูล เพื่อให้บรรลุนี้อยู่เสมือน 10102 ถูก
แบ่งออกเป็นภาคสนามและหน้าสนามชดเชย สนามหน้าเป็น 3 บิตนาน
เพราะมี 8 หน้าในโปรแกรม ใบนี้ 1 บิตสำหรับชดเชยซึ่ง
เป็นที่ถูกต้องเพราะมีเพียง 2 คำในแต่ละหน้า ส่วนฟิลด์นี้จะ
แสดงในรูปที่ 6.15c.
เมื่อคอมพิวเตอร์เห็นข้อมูลเหล่านี้มันเป็นเรื่องง่ายที่จะแปลงเป็น
ที่อยู่ทางกายภาพ ค่าของฟิลด์หน้าของ 1012 ถูกนำมาใช้เป็นดัชนีในหน้า
ตาราง เพราะ 1012 = 5 เราใช้ 5 เป็นชดเชยในตารางหน้า (รูปที่ 6.15b)
และดูว่าหน้าเสมือน 5 แผนที่กับกรอบทางกายภาพ 3. ตอนนี้เราเปลี่ยน 5 = 1012
3 = 112 แต่ให้เดียวกันชดเชย ที่อยู่ทางกายภาพใหม่เป็น 1102, เป็น
ที่แสดงในรูป 6.15d กระบวนการนี้จะประสบความสำเร็จแปลจากเสมือน
ที่อยู่ไปยังที่อยู่ทางกายภาพและลดจำนวนของบิต 4-3
ตามที่ต้องการ.
ตอนนี้ที่เราได้ทำงานร่วมกับตัวอย่างเล็ก ๆ เรามีความพร้อมสำหรับการที่มีขนาดใหญ่มากขึ้น
เช่นมีเหตุผล สมมติว่าเรามีพื้นที่ที่อยู่เสมือนของ 8K คำกายภาพ
ขนาดหน่วยความจำของ 4K คำที่ใช้ไบต์ที่อยู่และขนาดหน้าของ 1K คำ
(มีแคชในระบบนี้อย่างใดอย่างหนึ่ง แต่เราจะได้รับใกล้ชิดกับการทำความเข้าใจ
วิธีการทำงานของหน่วยความจำ และในที่สุดก็จะใช้ทั้งเพจและแคชในตัวอย่างของเรา)
และขนาดถ้อยคำของคนหนึ่งไบต์ ที่อยู่ Avirtual มีทั้งหมด 13 บิต (8K = 213) มี 3
บิตที่ใช้สำหรับสนามหน้า (มี 213
210 = 23 หน้าเสมือน) และ 10 ใช้สำหรับการ
ชดเชย (แต่ละหน้ามี 210 bytes) ที่อยู่หน่วยความจำกายภาพมีเพียง 12 บิต (4K =
212), กับครั้งแรก 2 บิตเป็นเขตข้อมูลหน้า (มี 22 เฟรมหน้าในหน่วยความจำหลัก)
และที่เหลืออีก 10 บิตเป็นชดเชยภายในหน้า รูปแบบสำหรับเสมือน
ที่อยู่และที่อยู่ทางกายภาพจะแสดงในรูป 6.16a.
สำหรับวัตถุประสงค์ของตัวอย่างนี้สมมติเรามีตารางเพจที่ระบุไว้
ในรูปที่ 6.16b รูป 6.16c แสดงตารางแสดงให้เห็นหน่วยความจำหลักต่าง ๆ
ที่อยู่ (ในฐาน 10) ที่เป็นประโยชน์สำหรับการแสดงการแปล.
สมมติว่า CPU ตอนนี้สร้างที่อยู่เสมือน 545,910 = 10101010100112. รูป
6.16d แสดงให้เห็นว่าที่อยู่นี้จะแบ่งออกเป็นหน้าและชดเชย เขตข้อมูลและ
วิธีการที่จะถูกแปลงเป็นที่อยู่ทางกายภาพ 136,310 = 0101010100112. เป็นหลัก
Being translated, please wait..
Results (
Thai) 3:
[Copy]Copied!
หน่วยความจำตำแหน่ง 4 = 1002 . ดังนั้น ซีพียูต้องแปลจากเสมือน
0 ที่อยู่ที่อยู่ทางกายภาพ 4 และใช้แปลแบบที่อธิบายข้างต้น
ทำแบบนี้ หมายเหตุที่อยู่หน่วยความจำหลักประกอบด้วย 3 ชิ้น ( มี 8 ไบต์ใน
หน่วยความจำ ) แต่ที่อยู่เสมือน ( จากโครงการ ) ต้องมี 4 บิต ( เพราะ
มี 16 ไบต์ในที่อยู่เสมือน ) ดังนั้นการแปลยังต้องแปลง
ที่อยู่ใน 4-bit ที่อยู่ 3-bit .
รูป 6.15b แสดงหน้าโต๊ะสำหรับกระบวนการนี้หลังจากหน้าให้มี
ถูกเข้าถึงได้ เราจะเห็นได้ว่า หน้า 0 , 1 , 3 และ 5 ของกระบวนการที่ถูกต้องและ
จึงอยู่ในความทรงจำ หน้า 2 , 6 และ 7 จะไม่ถูกต้อง และจะทำให้เกิดความผิดพลาดในแต่ละหน้า ถ้าอิง
.
ขอใช้เวลามองใกล้ที่กระบวนการแปลสมมติว่า CPU ตอนนี้
สร้างโปรแกรมหรือเสมือนที่อยู่ 10 = 10102 เป็นครั้งที่ ที่เราเห็นในรูป
6.15a ว่าข้อมูลในสถานที่นี้ " K " อยู่ในหน่วยความจําหลัก
ที่อยู่ 6 = 01102 . อย่างไรก็ตาม คอมพิวเตอร์จะต้องดำเนินการกระบวนการแปล
ที่เฉพาะเจาะจงเพื่อหาข้อมูล เพื่อให้บรรลุนี้ เสมือนที่อยู่ 10102 ,
แบ่งออกเป็นหน้าสนามและการชดเชยด้านหน้าสนาม 3 บิต
เพราะมี 8 หน้าในโปรแกรม ใบนี้ 1 บิตเพื่อชดเชยซึ่ง
ถูกต้อง เพราะมีเพียง 2 คำ ในแต่ละหน้า ข้อมูลส่วนนี้จะแสดงในรูปที่ 6.15c
.
เมื่อคอมพิวเตอร์ เห็นข้อมูลเหล่านี้ มันเป็นเรื่องง่ายที่จะแปลง
ที่อยู่ทางกายภาพ หน้าสนาม ค่า 1 คือใช้เป็นดัชนีในหน้า
โต๊ะเพราะ 1 = 5 , เราใช้ 5 เป็นชดเชยในหน้าโต๊ะ ( รูป 6.15b )
และดูเสมือนหน้า 5 แผนที่กรอบทางกายภาพ 3 ตอนนี้เราเปลี่ยน 5 = 1
3 = 112 แต่เซตเดียวกัน ที่อยู่ใหม่ 1102 ,
แสดงในรูปที่ 6.15d กระบวนการนี้ได้แปลจากที่อยู่เสมือน
ที่อยู่ทางกายภาพและลดจำนวนของบิตจากสี่สาม
ตามที่
ตอนนี้ที่เราได้ทำงานกับตัวอย่างเล็กๆ เราพร้อมจะมีขนาดใหญ่ มากกว่า
มีเหตุผลเช่น สมมติว่าเรามีพื้นที่ที่อยู่เสมือนของคำ 8 K ,
หน่วยความจำกายภาพขนาด 4K ไบต์คำที่ใช้เรียก และขนาดหน้ากระดาษของ 1K คำ
( ไม่มีแคชในระบบนี้เหมือนกัน แต่เราใกล้ชิดกับความเข้าใจ
วิธีการทำงานหน่วยความจำและในที่สุดจะใช้ทั้งหน้าและแคชในตัวอย่างของเรา ) ,
และคำขนาดหนึ่งไบต์ ที่อยู่ avirtual มีทั้งหมด 13 บิต ( K = 213 ) 3
บิตที่ใช้สำหรับหน้าสนาม ( มี 213
210 = 23 เสมือนหน้า ) และ 10 ใช้สำหรับ
ชดเชย ( แต่ละหน้ามี 210 ไบต์ ) ที่อยู่หน่วยความจำได้เพียง 12 บิต ( 4K =
212 )กับครั้งแรก 2 บิตที่หน้าสนาม ( มี 22 หน้าเฟรมในหน่วยความจำหลัก และอีก 10
บิตเป็นชดเชยภายในหน้า รูปแบบสำหรับที่อยู่เสมือน
และที่อยู่ทางกายภาพที่แสดงในรูปที่ 6.16a .
สำหรับวัตถุประสงค์ของตัวอย่างนี้ สมมติว่าเรามีตารางเพจระบุ
ในรูป 6.16b รูป 6.16c แสดงตารางแสดงต่างๆ
หน่วยความจำหลักที่อยู่ ( ฐาน 10 ) ที่เป็นประโยชน์สำหรับแสดงการแปล
คิดว่า CPU ตอนนี้สร้างเสมือนที่อยู่ 545910 = 10101010100112 . รูป
6.16d แสดงให้เห็นถึงวิธีการที่อยู่นี้แบ่งเป็นหน้า และด้านตรงข้ามและ
มันเป็นแปลงที่อยู่ทางกายภาพ 136310 = 0101010100112 . เป็นหลัก ,
Being translated, please wait..