Memory Management: Difference between revisions
(→RAM) |
|||
Line 52: | Line 52: | ||
=== Memory Block Tables === | === Memory Block Tables === | ||
{| class="wikitable" style="border: none; background: none;" | |||
{| class="wikitable" | ! scope=col | Block Number | ||
| | ! scope=col | Physical Address | ||
!Block Number!! | | rowspan=65 style="border: none; background: none;" | | ||
! scope=col | Block Number | |||
! scope=col | Physical Address | |||
| rowspan=65 style="border: none; background: none;" | | |||
! scope=col | Block Number | |||
! scope=col | Physical Address | |||
|- | |- | ||
|$00||$00:0000 - $00:1FFF | |$00||$00:0000 - $00:FFFF||$40||$08:0000 - $08:1FFF||$80||$10:0000 - $10:1FFF | ||
|- | |- | ||
|$01||$00:2000 - $00:3FFF | |$01||$00:2000 - $00:3FFF||$41||$08:2000 - $08:3FFF||$81||$10:2000 - $10:3FFF | ||
|- | |- | ||
|$02||$00:4000 - $00:5FFF | |$02||$00:4000 - $00:5FFF||$42||$08:4000 - $08:5FFF||$82||$10:4000 - $10:5FFF | ||
|- | |- | ||
|$03||$00:6000 - $00:7FFF | |$03||$00:6000 - $00:7FFF||$43||$08:6000 - $08:7FFF||$83||$10:6000 - $10:7FFF | ||
|- | |- | ||
|$04||$00:8000 - $00:9FFF | |$04||$00:8000 - $00:9FFF||$44||$08:8000 - $08:9FFF||$84||$10:8000 - $10:9FFF | ||
|- | |- | ||
|$05||$00:A000 - $00:BFFF | |$05||$00:A000 - $00:BFFF||$45||$08:A000 - $08:BFFF||$85||$10:A000 - $10:BFFF | ||
|- | |- | ||
|$06||$00:C000 - $00:DFFF | |$06||$00:C000 - $00:DFFF||$46||$08:C000 - $08:DFFF||$86||$10:C000 - $10:DFFF | ||
|- | |- | ||
|$07||$00:E000 - $00:FFFF | |$07||$00:E000 - $00:FFFF||$47||$08:E000 - $08:FFFF||$87||$10:E000 - $10:FFFF | ||
|- | |- | ||
|$08||$01:0000 - $01:1FFF | |$08||$01:0000 - $01:1FFF||$48||$09:0000 - $09:1FFF||$88||$11:0000 - $11:1FFF | ||
|- | |- | ||
|$09||$01:2000 - $01:3FFF | |$09||$01:2000 - $01:3FFF||$49||$09:2000 - $09:3FFF||$89||$11:2000 - $11:3FFF | ||
|- | |- | ||
|$0A||$01:4000 - $01:5FFF | |$0A||$01:4000 - $01:5FFF||$4A||$09:4000 - $09:5FFF||$8A||$11:4000 - $11:5FFF | ||
|- | |- | ||
|$0B||$01:6000 - $01:7FFF | |$0B||$01:6000 - $01:7FFF||$4B||$09:6000 - $09:7FFF||$8B||$11:6000 - $11:7FFF | ||
|- | |- | ||
|$0C||$01:8000 - $01:9FFF | |$0C||$01:8000 - $01:9FFF||$4C||$09:8000 - $09:9FFF||$8C||$11:8000 - $11:9FFF | ||
|- | |- | ||
|$0D||$01:A000 - $01:BFFF | |$0D||$01:A000 - $01:BFFF||$4D||$09:A000 - $09:BFFF||$8D||$11:A000 - $11:BFFF | ||
|- | |- | ||
|$0E||$01:C000 - $01:DFFF | |$0E||$01:C000 - $01:DFFF||$4E||$09:C000 - $09:DFFF||$8E||$11:C000 - $11:DFFF | ||
|- | |- | ||
|$0F||$01:E000 - $01:FFFF | |$0F||$01:E000 - $01:FFFF||$4F||$09:E000 - $09:FFFF||$8F||$11:E000 - $11:FFFF | ||
|- | |- | ||
|$10||$02:0000 - $02:1FFF | |$10||$02:0000 - $02:1FFF||$50||$0A:0000 - $0A:1FFF||$90||$12:0000 - $12:1FFF | ||
|- | |- | ||
|$11||$02:2000 - $02:3FFF | |$11||$02:2000 - $02:3FFF||$51||$0A:2000 - $0A:3FFF||$91||$12:2000 - $12:3FFF | ||
|- | |- | ||
|$12||$02:4000 - $02:5FFF | |$12||$02:4000 - $02:5FFF||$52||$0A:4000 - $0A:5FFF||$92||$12:4000 - $12:5FFF | ||
|- | |- | ||
|$13||$02:6000 - $02:7FFF | |$13||$02:6000 - $02:7FFF||$53||$0A:6000 - $0A:7FFF||$93||$12:6000 - $12:7FFF | ||
|- | |- | ||
|$14||$02:8000 - $02:9FFF | |$14||$02:8000 - $02:9FFF||$54||$0A:8000 - $0A:9FFF||$94||$12:8000 - $12:9FFF | ||
|- | |- | ||
|$15||$02:A000 - $02:BFFF | |$15||$02:A000 - $02:BFFF||$55||$0A:A000 - $0A:BFFF||$95||$12:A000 - $12:BFFF | ||
|- | |- | ||
|$16||$02:C000 - $02:DFFF | |$16||$02:C000 - $02:DFFF||$56||$0A:C000 - $0A:DFFF||$96||$12:C000 - $12:DFFF | ||
|- | |- | ||
|$17||$02:E000 - $02:FFFF | |$17||$02:E000 - $02:FFFF||$57||$0A:E000 - $0A:FFFF||$97||$12:E000 - $12:FFFF | ||
|- | |- | ||
|$18||$03:0000 - $03:1FFF | |$18||$03:0000 - $03:1FFF||$58||$0B:0000 - $0B:1FFF||$98||$13:0000 - $13:1FFF | ||
|- | |- | ||
|$19||$03:2000 - $03:3FFF | |$19||$03:2000 - $03:3FFF||$59||$0B:2000 - $0B:3FFF||$99||$13:2000 - $13:3FFF | ||
|- | |- | ||
|$1A||$03:4000 - $03:5FFF | |$1A||$03:4000 - $03:5FFF||$5A||$0B:4000 - $0B:5FFF||$9A||$13:4000 - $13:5FFF | ||
|- | |- | ||
|$1B||$03:6000 - $03:7FFF | |$1B||$03:6000 - $03:7FFF||$5B||$0B:6000 - $0B:7FFF||$9B||$13:6000 - $13:7FFF | ||
|- | |- | ||
|$1C||$03:8000 - $03:9FFF | |$1C||$03:8000 - $03:9FFF||$5C||$0B:8000 - $0B:9FFF||$9C||$13:8000 - $13:9FFF | ||
|- | |- | ||
|$1D||$03:A000 - $03:BFFF | |$1D||$03:A000 - $03:BFFF||$5D||$0B:A000 - $0B:BFFF||$9D||$13:A000 - $13:BFFF | ||
|- | |- | ||
|$1E||$03:C000 - $03:DFFF | |$1E||$03:C000 - $03:DFFF||$5E||$0B:C000 - $0B:DFFF||$9E||$13:C000 - $13:DFFF | ||
|- | |- | ||
|$1F||$03:E000 - $03:FFFF | |$1F||$03:E000 - $03:FFFF||$5F||$0B:E000 - $0B:FFFF||$9F||$13:E000 - $13:FFFF | ||
|- | |- | ||
|$20||$04:0000 - $04:1FFF | |$20||$04:0000 - $04:1FFF||$60||$0C:0000 - $0C:1FFF | ||
|- | |- | ||
|$21||$04:2000 - $04:3FFF | |$21||$04:2000 - $04:3FFF||$61||$0C:2000 - $0C:3FFF | ||
|- | |- | ||
|$22||$04:4000 - $04:5FFF | |$22||$04:4000 - $04:5FFF||$62||$0C:4000 - $0C:5FFF | ||
|- | |- | ||
|$23||$04:6000 - $04:7FFF | |$23||$04:6000 - $04:7FFF||$63||$0C:6000 - $0C:7FFF | ||
|- | |- | ||
|$24||$04:8000 - $04:9FFF | |$24||$04:8000 - $04:9FFF||$64||$0C:8000 - $0C:9FFF | ||
|- | |- | ||
|$25||$04:A000 - $04:BFFF | |$25||$04:A000 - $04:BFFF||$65||$0C:A000 - $0C:BFFF | ||
|- | |- | ||
|$26||$04:C000 - $04:DFFF | |$26||$04:C000 - $04:DFFF||$66||$0C:C000 - $0C:DFFF | ||
|- | |- | ||
|$27||$04:E000 - $04:FFFF | |$27||$04:E000 - $04:FFFF||$67||$0C:E000 - $0C:FFFF | ||
|- | |- | ||
|$28||$05:0000 - $05:1FFF | |$28||$05:0000 - $05:1FFF||$68||$0D:0000 - $0D:1FFF | ||
|- | |- | ||
|$29||$05:2000 - $05:3FFF | |$29||$05:2000 - $05:3FFF||$69||$0D:2000 - $0D:3FFF | ||
|- | |- | ||
|$2A||$05:4000 - $05:5FFF | |$2A||$05:4000 - $05:5FFF||$6A||$0D:4000 - $0D:5FFF | ||
|- | |- | ||
|$2B||$05:6000 - $05:7FFF | |$2B||$05:6000 - $05:7FFF||$6B||$0D:6000 - $0D:7FFF | ||
|- | |- | ||
|$2C||$05:8000 - $05:9FFF | |$2C||$05:8000 - $05:9FFF||$6C||$0D:8000 - $0D:9FFF | ||
|- | |- | ||
|$2D||$05:A000 - $05:BFFF | |$2D||$05:A000 - $05:BFFF||$6D||$0D:A000 - $0D:BFFF | ||
|- | |- | ||
|$2E||$05:C000 - $05:DFFF | |$2E||$05:C000 - $05:DFFF||$6E||$0D:C000 - $0D:DFFF | ||
|- | |- | ||
|$2F||$05:E000 - $05:FFFF | |$2F||$05:E000 - $05:FFFF||$6F||$0D:E000 - $0D:FFFF | ||
|- | |- | ||
|$30||$06:0000 - $06:1FFF | |$30||$06:0000 - $06:1FFF||$70||$0E:0000 - $0E:1FFF | ||
|- | |- | ||
|$31||$06:2000 - $06:3FFF | |$31||$06:2000 - $06:3FFF||$71||$0E:2000 - $0E:3FFF | ||
|- | |- | ||
|$32||$06:4000 - $06:5FFF | |$32||$06:4000 - $06:5FFF||$72||$0E:4000 - $0E:5FFF | ||
|- | |- | ||
|$33||$06:6000 - $06:7FFF | |$33||$06:6000 - $06:7FFF||$73||$0E:6000 - $0E:7FFF | ||
|- | |- | ||
|$34||$06:8000 - $06:9FFF | |$34||$06:8000 - $06:9FFF||$74||$0E:8000 - $0E:9FFF | ||
|- | |- | ||
|$35||$06:A000 - $06:BFFF | |$35||$06:A000 - $06:BFFF||$75||$0E:A000 - $0E:BFFF | ||
|- | |- | ||
|$36||$06:C000 - $06:DFFF | |$36||$06:C000 - $06:DFFF||$76||$0E:C000 - $0E:DFFF | ||
|- | |- | ||
|$37||$06:E000 - $06:FFFF | |$37||$06:E000 - $06:FFFF||$77||$0E:E000 - $0E:FFFF | ||
|- | |- | ||
|$38||$07:0000 - $07:1FFF | |$38||$07:0000 - $07:1FFF||$78||$0F:0000 - $0F:1FFF | ||
|- | |- | ||
|$39||$07:2000 - $07:3FFF | |$39||$07:2000 - $07:3FFF||$79||$0F:2000 - $0F:3FFF | ||
|- | |- | ||
|$3A||$07:4000 - $07:5FFF | |$3A||$07:4000 - $07:5FFF||$7A||$0F:4000 - $0F:5FFF | ||
|- | |- | ||
|$3B||$07:6000 - $07:7FFF | |$3B||$07:6000 - $07:7FFF||$7B||$0F:6000 - $0F:7FFF | ||
|- | |- | ||
|$3C||$07:8000 - $07:9FFF | |$3C||$07:8000 - $07:9FFF||$7C||$0F:8000 - $0F:9FFF | ||
|- | |- | ||
|$3D||$07:A000 - $07:BFFF | |$3D||$07:A000 - $07:BFFF||$7D||$0F:A000 - $0F:BFFF | ||
|- | |- | ||
|$3E||$07:C000 - $07:DFFF | |$3E||$07:C000 - $07:DFFF||$7E||$0F:C000 - $0F:DFFF | ||
|- | |- | ||
|$3F||$ | |$3F||$07:E000 - $07:FFFF||$7F||$0F:E000 - $0F:FFFF | ||
|} | |} |
Revision as of 07:58, 23 December 2023
The F256 line comes with 512 KB of RAM and 256 KB of flash memory. Up to 256 KB additional Memory, either RAM or Flash, can be added through the Expansion Port.
Physical Memory Layout
The address bus is 21 bits wide, allowing a total of 221 = 2 MB to be addressed.
Address | Purpose |
---|---|
$00:0000 - $07:FFFF | RAM |
$80:0000 - $0F:FFFF | Flash |
$10:0000 - $13:FFFF | Expansion Memory |
$14:0000 - $1F:FFFF | Reserved |
Memory Management Unit (MMU)
While the address bus is generally 21 bits wide, the CPU address bus of the 65c02 and the FNX6809 is only 16 bits wide. Even though the 65816 does have a 24 bit wide address bus, this is currently not used. However, this might change with a future update.
To allow the addressing of the whole address space, a Memory Management Unit (MMU) is provided, that translates the CPU logical address space to physical addresses.
To achieve this, the MMU has 8 slots, each representing an 8 KB block of the CPU addressable memory space.
The physical address space is also divided into 8 KB blocks, dividing the available 2 MB into 256 blocks.
To map a block of physical addresses into CPU address space, the block number is written into the according slot register of the MMU.
Slot | CPU Address Space | Slot Register Address |
---|---|---|
0 | $0000 - $1FFF | $0008 |
1 | $2000 - $3FFF | $0009 |
2 | $4000 - $5FFF | $000A |
3 | $6000 - $7FFF | $000B |
4 | $8000 - $9FFF | $000C |
5 | $A000 - $BFFF | $000D |
6 | $C000 - $DFFF | $000E |
7 | $E000 - $FFFF | $000F |
Memory Block Tables
Block Number | Physical Address | Block Number | Physical Address | Block Number | Physical Address | ||
---|---|---|---|---|---|---|---|
$00 | $00:0000 - $00:FFFF | $40 | $08:0000 - $08:1FFF | $80 | $10:0000 - $10:1FFF | ||
$01 | $00:2000 - $00:3FFF | $41 | $08:2000 - $08:3FFF | $81 | $10:2000 - $10:3FFF | ||
$02 | $00:4000 - $00:5FFF | $42 | $08:4000 - $08:5FFF | $82 | $10:4000 - $10:5FFF | ||
$03 | $00:6000 - $00:7FFF | $43 | $08:6000 - $08:7FFF | $83 | $10:6000 - $10:7FFF | ||
$04 | $00:8000 - $00:9FFF | $44 | $08:8000 - $08:9FFF | $84 | $10:8000 - $10:9FFF | ||
$05 | $00:A000 - $00:BFFF | $45 | $08:A000 - $08:BFFF | $85 | $10:A000 - $10:BFFF | ||
$06 | $00:C000 - $00:DFFF | $46 | $08:C000 - $08:DFFF | $86 | $10:C000 - $10:DFFF | ||
$07 | $00:E000 - $00:FFFF | $47 | $08:E000 - $08:FFFF | $87 | $10:E000 - $10:FFFF | ||
$08 | $01:0000 - $01:1FFF | $48 | $09:0000 - $09:1FFF | $88 | $11:0000 - $11:1FFF | ||
$09 | $01:2000 - $01:3FFF | $49 | $09:2000 - $09:3FFF | $89 | $11:2000 - $11:3FFF | ||
$0A | $01:4000 - $01:5FFF | $4A | $09:4000 - $09:5FFF | $8A | $11:4000 - $11:5FFF | ||
$0B | $01:6000 - $01:7FFF | $4B | $09:6000 - $09:7FFF | $8B | $11:6000 - $11:7FFF | ||
$0C | $01:8000 - $01:9FFF | $4C | $09:8000 - $09:9FFF | $8C | $11:8000 - $11:9FFF | ||
$0D | $01:A000 - $01:BFFF | $4D | $09:A000 - $09:BFFF | $8D | $11:A000 - $11:BFFF | ||
$0E | $01:C000 - $01:DFFF | $4E | $09:C000 - $09:DFFF | $8E | $11:C000 - $11:DFFF | ||
$0F | $01:E000 - $01:FFFF | $4F | $09:E000 - $09:FFFF | $8F | $11:E000 - $11:FFFF | ||
$10 | $02:0000 - $02:1FFF | $50 | $0A:0000 - $0A:1FFF | $90 | $12:0000 - $12:1FFF | ||
$11 | $02:2000 - $02:3FFF | $51 | $0A:2000 - $0A:3FFF | $91 | $12:2000 - $12:3FFF | ||
$12 | $02:4000 - $02:5FFF | $52 | $0A:4000 - $0A:5FFF | $92 | $12:4000 - $12:5FFF | ||
$13 | $02:6000 - $02:7FFF | $53 | $0A:6000 - $0A:7FFF | $93 | $12:6000 - $12:7FFF | ||
$14 | $02:8000 - $02:9FFF | $54 | $0A:8000 - $0A:9FFF | $94 | $12:8000 - $12:9FFF | ||
$15 | $02:A000 - $02:BFFF | $55 | $0A:A000 - $0A:BFFF | $95 | $12:A000 - $12:BFFF | ||
$16 | $02:C000 - $02:DFFF | $56 | $0A:C000 - $0A:DFFF | $96 | $12:C000 - $12:DFFF | ||
$17 | $02:E000 - $02:FFFF | $57 | $0A:E000 - $0A:FFFF | $97 | $12:E000 - $12:FFFF | ||
$18 | $03:0000 - $03:1FFF | $58 | $0B:0000 - $0B:1FFF | $98 | $13:0000 - $13:1FFF | ||
$19 | $03:2000 - $03:3FFF | $59 | $0B:2000 - $0B:3FFF | $99 | $13:2000 - $13:3FFF | ||
$1A | $03:4000 - $03:5FFF | $5A | $0B:4000 - $0B:5FFF | $9A | $13:4000 - $13:5FFF | ||
$1B | $03:6000 - $03:7FFF | $5B | $0B:6000 - $0B:7FFF | $9B | $13:6000 - $13:7FFF | ||
$1C | $03:8000 - $03:9FFF | $5C | $0B:8000 - $0B:9FFF | $9C | $13:8000 - $13:9FFF | ||
$1D | $03:A000 - $03:BFFF | $5D | $0B:A000 - $0B:BFFF | $9D | $13:A000 - $13:BFFF | ||
$1E | $03:C000 - $03:DFFF | $5E | $0B:C000 - $0B:DFFF | $9E | $13:C000 - $13:DFFF | ||
$1F | $03:E000 - $03:FFFF | $5F | $0B:E000 - $0B:FFFF | $9F | $13:E000 - $13:FFFF | ||
$20 | $04:0000 - $04:1FFF | $60 | $0C:0000 - $0C:1FFF | ||||
$21 | $04:2000 - $04:3FFF | $61 | $0C:2000 - $0C:3FFF | ||||
$22 | $04:4000 - $04:5FFF | $62 | $0C:4000 - $0C:5FFF | ||||
$23 | $04:6000 - $04:7FFF | $63 | $0C:6000 - $0C:7FFF | ||||
$24 | $04:8000 - $04:9FFF | $64 | $0C:8000 - $0C:9FFF | ||||
$25 | $04:A000 - $04:BFFF | $65 | $0C:A000 - $0C:BFFF | ||||
$26 | $04:C000 - $04:DFFF | $66 | $0C:C000 - $0C:DFFF | ||||
$27 | $04:E000 - $04:FFFF | $67 | $0C:E000 - $0C:FFFF | ||||
$28 | $05:0000 - $05:1FFF | $68 | $0D:0000 - $0D:1FFF | ||||
$29 | $05:2000 - $05:3FFF | $69 | $0D:2000 - $0D:3FFF | ||||
$2A | $05:4000 - $05:5FFF | $6A | $0D:4000 - $0D:5FFF | ||||
$2B | $05:6000 - $05:7FFF | $6B | $0D:6000 - $0D:7FFF | ||||
$2C | $05:8000 - $05:9FFF | $6C | $0D:8000 - $0D:9FFF | ||||
$2D | $05:A000 - $05:BFFF | $6D | $0D:A000 - $0D:BFFF | ||||
$2E | $05:C000 - $05:DFFF | $6E | $0D:C000 - $0D:DFFF | ||||
$2F | $05:E000 - $05:FFFF | $6F | $0D:E000 - $0D:FFFF | ||||
$30 | $06:0000 - $06:1FFF | $70 | $0E:0000 - $0E:1FFF | ||||
$31 | $06:2000 - $06:3FFF | $71 | $0E:2000 - $0E:3FFF | ||||
$32 | $06:4000 - $06:5FFF | $72 | $0E:4000 - $0E:5FFF | ||||
$33 | $06:6000 - $06:7FFF | $73 | $0E:6000 - $0E:7FFF | ||||
$34 | $06:8000 - $06:9FFF | $74 | $0E:8000 - $0E:9FFF | ||||
$35 | $06:A000 - $06:BFFF | $75 | $0E:A000 - $0E:BFFF | ||||
$36 | $06:C000 - $06:DFFF | $76 | $0E:C000 - $0E:DFFF | ||||
$37 | $06:E000 - $06:FFFF | $77 | $0E:E000 - $0E:FFFF | ||||
$38 | $07:0000 - $07:1FFF | $78 | $0F:0000 - $0F:1FFF | ||||
$39 | $07:2000 - $07:3FFF | $79 | $0F:2000 - $0F:3FFF | ||||
$3A | $07:4000 - $07:5FFF | $7A | $0F:4000 - $0F:5FFF | ||||
$3B | $07:6000 - $07:7FFF | $7B | $0F:6000 - $0F:7FFF | ||||
$3C | $07:8000 - $07:9FFF | $7C | $0F:8000 - $0F:9FFF | ||||
$3D | $07:A000 - $07:BFFF | $7D | $0F:A000 - $0F:BFFF | ||||
$3E | $07:C000 - $07:DFFF | $7E | $0F:C000 - $0F:DFFF | ||||
$3F | $07:E000 - $07:FFFF | $7F | $0F:E000 - $0F:FFFF |