Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Processor speed

Author: Christophe Theron

Date: 19:01:18 03/10/00

Go up one level in this thread


On March 10, 2000 at 02:54:42, Eugene Nalimov wrote:

>On March 10, 2000 at 02:39:39, Eugene Nalimov wrote:
>
>>On March 10, 2000 at 02:00:32, Christophe Theron wrote:
>>
>>>On March 09, 2000 at 19:23:01, John Coffey wrote:
>>>
>>>>
>>>>>So by your definition, a PC with SDRAM is 64-bit, whereas a new Pentium III with
>>>>>Rambus memory is 16-bit. Or maybe 256-bit, due to the interface to the L2 cache?
>>>>>Gets confusing quickly...
>>>>>
>>>>
>>>>
>>>>I am not going to make any claims to modern processors that I don't program.
>>>>The 68000 fetched data and instructions from memory 16 bits at a time.  I don't
>>>>see anything wrong with my definition.
>>>>
>>>>John
>>>
>>>
>>>I have heard that some 64Kb limitations (for code or data) apply to the 68000. I
>>>don't understand why, as it has 32 bits registers. The 16 bits address bus is
>>>very similar to the 386sx 16 address bus (the 386sx had 32 bits registers).
>>>
>>>What's the problem with the 68000? Are there really such limitations?
>>>
>>>
>>>    Christophe
>>
>>First 32k of address space (and of course last 32k) can directly addressed used
>>2 bytes address included in the instruction, not 4 bytes address, so typical
>>instruction occupies 4 bytes instead of 6. So if you'll manage to allocate all
>>your globals there, your program would be noticeable shorter. Important
>>consideration for the systems with limited ROM/RAM.
>>
>>Eugene
>
>Addition: 68000 has address mode "reg32+offset16", but does not have
>"reg32+offset32". So, to index the array that is located in first/last 32k, you
>can use address mode directly, i.e.
>    mov.l 0x1234(a5), d0
>(1 instruction, 4 bytes)
>
>If array is located out of this space, you have to use something like
>    mov.l a5, a3
>    add.l #0x12345678, a3
>    mov.l (a3), d0
>(3 instructions, 10 bytes, one extra register used)
>
>Eugene


OK! I understand better now what the problem is. Adressing an array bigger than
64K is not elegant. Reminds me a lot about these horrible segmented addressing
system of the x86 family and the near/far pointers.

Does the same problem apply to code addressing (jumps or calls limited to 16
bits offsets from current IP or something similar)?

Thanks for the info.


    Christophe



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.