The limitations of the various forms of SD cards have nothing to do with
the limitations of 64-bit systems but everything to do with the
intentional design limitations of the various memory cards.
When random access memory (RAM) is addressed in a computer system, for
the sake of speed it's done so in parallel... ie, all of the address
lines required to uniquely identify a particular byte are activated at
the same time. A 64 bit system can theoretically address 2**64 bytes
(an enormous decimal number) 18,446,744,073,709,551,616. However, real
systems addressing RAM would require 64 address lines... a heavy price
to pay for trying to reach some memory that could never possibly be there.
Even addressing the RAM of a 32 bit (4 GB) system requires 32 address
lines and SDHC cards only have a total of 9 pins. It's clear that the
address must be transmitted serially. In serial transmission all the
bits of the address could come across a single data line to the card or,
as in high speed cards, 4 bits at a time using 4 parallel lines. But the
card must wait for all the bits of the address to arrive where they can
then be assembled inside the card to some form of parallel internal
addressing. But SD cards are not arranged internally like RAM. Internal
storage of memory cards mimics that of a hard drive. The smallest unit
of storage that can actually be directly addressed is a "sector" of 512
bytes. All 512 bytes must be read within the card and then all or
selected bytes passed back out... same as disk drives.
Although 64-bit systems don't (as a practical matter) have 64 address
lines they do have 64 data lines such that a 64-bit data value can be
read in parallel.
But various design tradeoffs can also be made to trade off speed vs.
cost. The original IBM PC used an Intel 8088 processor rather than an
Intel 8086. The 8088 had 16 bit addressing augmented by an additional 4
bit segment address in order to address a 1 MB address space in 64 KB
chunks. But only the 8086 had 16 data lines to allow passing 16 bits of
data in parallel. The cheaper 8088 had only 8 data lines and had to do
2 memory accesses to get 16 bits. It could do the same work as the 8086
but it was slower.
Chuck Norcutt
On 4/9/2016 7:49 AM, Brian Gray via olympus wrote:
Hi
The PC Helpdesk got it right but 2 raised to the power 1000 is not
equal to 1000, it is way bigger! 1024 is equal to 2 raised to the power
10. A schooldays memory is of a story about an ancient king who agreed
to pay another king, as a penalty, 1 grain of corn on the first square
of a chess board, 2 grains on the second, 4 on the third, 8 on the
fourth etc up to the 64 chess board squares. He could not fulfil his
agreement because there is not that much corn in the world! This all
relates to why we have SD, SDHC and SDXC memory cards because there is
a limit to the number of memory locations which can be addressed
unaided by a 64 bit system.
One of the computer gurus on the list can no doubt explain how High
Capacity and Extended Capacity cards get around this limitation.
Brian Gray
--
_________________________________________________________________
Options: http://lists.thomasclausen.net/mailman/listinfo/olympus
Archives: http://lists.thomasclausen.net/mailman/private/olympus/
Themed Olympus Photo Exhibition: http://www.tope.nl/
|