| 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/
 |