cpu-architecture


How critical is page size in virtual memory


So I just read that virtual addresses are divided up into 1 - page number and 2 - offset.
I also read that page number directs you to be able to find the right page and the offset to get the right "byte" that you want to get the physical memory of.
So for example in 4KB sized page, we have 12bits reserved for offset since 2^12 = 4096, which is 4KB.
I get the concepts. But I don't get the reasoning behind using pages.
I mean, using the 4KB sized page or 8KB sized page, why couldn't we use 1byte big page?
I guess that could make everything byte by byte read and write, which you could say it would slow things down.
But aren't we already doing the same thing with first finding page and finding the correct byte with offset?
What is the motivation behind coming up with bigger sized pages than 1byte?
I get the reason behind the use of virtual memory: to avoid swapping. But why couldn't we do this with smaller, more direct one byte sized page?
This is the same question as cluster sizes on disks.
Larger pages => Lower overhead (smaller page tables)
Smaller pages => Greater overhead
Larger pages => More wasted memory and more disk reading/writing on paging
Smaller pages => Less wasted memory and less disk reading/writing on paging
In ye olde says page sizes tended to be much smaller than they are today (512 bytes being common). As memory has grown, the wasted memory paging problems have diminished while the overhead problem (due to more pages) has grown. Thus we have larger page sizes.
A one byte page gets you nothing. You have to write to disk in full disk blocks (typically 512bytes or larger). Paging single bytes would be tediously slow.
Now add in page protection and the page tables. With one-byte pages, there would be more page table overhead than useable memory.

Related Links

Simple sum in IJVM
gcc thinks MMX registers are “bad register name”s
RISC under CISC ISA
MESI- what happens when reading data currently being modified?
Real-world analog to TIS-100
How do MemReq and MemResp exactly work in RoccIO - RISCV
Processor FSB characteristics
If a pipeline stage is stalled due to a dependency, do all the stages which follow get stalled for that cycle?
Why predict a branch, instead of simply executing both in parallel?
Are there architectures which are not using two's complement for representation of negative values?
Are object files architecture independent?
What causes the retired instructions to increase?
what is the meaning of Instruction dispatch
what is the meaning of semantic density per instruction
Units of perf stat statistics
How to verify the GNU architecture triplet for a given ELF binary?

Categories

HOME
json
ember.js
plsql
checkbox
angular-cli
amazon-swf
textwatcher
ncurses
ruby-on-rails-3
appmaker
adsense
dataframe
tumblr
pygame
actionscript-2
camera-calibration
ctypes
tee
react-leaflet
line-api
dendrogram
python-unicode
quartus
pyephem
internet-explorer-8
attask
aws-cognito
nmake
scalaz7
fop
dspic
spring-test
http-method
opencart2.3
thinking-sphinx
configure
pitest
websauna
pep8-assembly
vegan
pyscripter
stocks
fractals
spreedly
von-neumann
vmd
poco-libraries
freetts
visualstudio.testtools
polyfills
cross-entropy
common.logging
floating-accuracy
stdclass
react-native-router-flux
microdata
tableau-server
tofixed
try-finally
angularjs-ng-pattern
nofollow
image-editing
coordinate-transformation
emokit
mongo-c-driver
anti-cheat
brackets-shell
multinomial
difference
jta
app.xaml
apigee-baas
ipojo
connection-reset
cpu-cores
ibm-data-studio
custom-url
hg-git
orientation-changes
omnifocus
yahoo-boss-api
colt
sgml
anjuta
openkinect
lov
exiv2
gamepad
asp.net-mvc-scaffolding
sql-server-2012-web
carddav
ng-pattern
cgpath
ubuntu-11.10
static-variables
icefaces-3
wcf-web-api
hobo
nsindexpath
webkit-transform
posting
scalaxb
rtsp-client
windows-controls
microsoft.ink
divx

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App