Z80 Bank-Switching Scheme An101

Total Page:16

File Type:pdf, Size:1020Kb

Z80 Bank-Switching Scheme An101 Z80 BANK-SWITCHING SCHEME AN101 1. INTRODUCTION 1. Scope: This Application Note gives a description of a circuit design allowing the classic Z80 microproces- sor to access expanded memory, beyond the 64K bytes made readily available by its 16 address lines, A0 through A15. 2. Z80 microprocessor: Though it has been over 20 years since the introduction of the Z80, this family of microprocessors still finds application in new designs. This is because the Z80 is still cost-effective for many 8-bit applications; because many users have a large library of tested code for the Z80; and because the parts are readily available from several manufacturers, easing supply concerns that apply to sole-sourced processors. 3. Applicable chips: This Application Note applies to the classic Z80 microprocessor. It can also be applied to the newer Z84C15, which comprises a Z80 CPU, a clock generator, four Z80 CTC channels, two Z80 SIO channels, DMA, chip select signals, and glue logic in a 100-pin quad flat pack. However this external bank-switching circuitry is not necessary for members of the Z80180 family, which have a built-in MMU (memory management unit) on-chip. 2. DESIGN GOALS 1. Program memory: We wanted to expand program memory space to 128K bytes for our application. We needed to support in-circuit reprogramming, so we chose the AMD 29F010 flash memory device. This +5 volt part does not require a +12 volt power supply for programming. After the flash chip is initially programmed at the factory with the bootstrap loader and the current application code, it can later be reprogrammed in the field over the RS-232 serial port. 2. RAM memory: Our communications application needed 512K bytes of RAM, mostly to support storage of long messages. The circuit diagram here shows a fully static 512K byte SRAM. (We have also used a 512K-byte pseudostatic RAM, but that is not shown here.) 3. Software interface: We wanted to ease the bank-switching software burden on the programmers. 4. Cost: We did not want to add lots of cost. We used readily available ICs. 3. SCHEMATIC DIAGRAM A circuit diagram for the bank-switching logic and the two memory ICs is shown below. 2101 OXFORD ROAD PHONE FAX INTERNET DES PLAINES, IL 60018-1919 USA 847.803.6860 847.803.6870 www.siliconengines-ltd.com Z80 BANK-SWITCHING SCHEME SCHEMATIC DIAGRAM Z80 BANK SWITCHING SCHEME MEMORY BANK CONTROL BS3 1 U3A BS7 1 U4A 3 RAMA14 3 RAMA18 U1A 2 2 D[0..7] 74HCT273 74HCT08 74HCT08 D7 18 19 BS7 8D 8Q D6 17 16 BS6 7D 7Q D5 14 15 BS5 BS2 4 U3B BS6 4 U4B 6D 6Q D4 13 12 BS4 6 ROMA16 6 RAMA17 5D 5Q D3 8 9 BS3 5 5 4D 4Q D2 7 6 BS2 74HCT08 74HCT08 3D 3Q D1 4 5 BS1 2D 2Q D0 3 2 BS0 1D 1Q BS1 10 U3C BS5 9 U4C 11 8 ROMA15 8 RAMA16 /BANK CLK 1 9 10 /RESET CLR 74HCT08 74HCT08 U2A BS0 13 U3D BS4 13 U4D 74HCT139 11 ROMA14 11 RAMA15 1 7 /MREQ G Y3 12 12 6 Y2 74HCT08 74HCT08 3 5 /RAMCE B Y1 2 4 /ROMCE A Y0 A15 A14 D[0..7] PROGRAM MEMORY RAM MEMORY 128K BYTES FLASH 512K BYTES SRAM U5A U6A 29F010 512K SRAM RAMA18 1 21 D7 A18 D7 ROMA16 2 21 D7 RAMA17 30 20 D6 A16 D7 A17 D6 ROMA15 3 20 D6 RAMA16 2 19 D5 A15 D6 A16 D5 ROMA14 29 19 D5 RAMA15 31 18 D4 A14 D5 A15 D4 A13 28 18 D4 RAMA14 3 17 D3 A13 D4 A14 D3 A12 4 17 D3 A13 28 15 D2 A12 D3 A13 D2 A11 25 15 D2 A12 4 14 D1 A11 D2 A12 D1 A10 23 14 D1 A11 25 13 D0 A10 D1 A11 D0 A9 26 13 D0 A10 23 A9 D0 A10 A8 27 A9 26 A8 A9 A7 5 A8 27 A7 A8 A6 6 A7 5 A6 A7 A5 7 A6 6 A5 A6 A4 8 A5 7 A4 A5 A3 9 A4 8 A3 A4 A2 10 A3 9 A2 A3 A1 11 A2 10 A1 A2 A0 12 A1 11 A0 A1 A0 12 A0 /ROMCE 22 CE 24 /RAMCE 22 /RD OE CE 31 /RD 24 U2B /WR PGM/WR OE 1 30 /WR 29 74HCT139 VPP NC WE VCC 15 9 G Y3 10 Y2 13 11 B Y1 14 12 A Y0 A[0..15] VCC 20 16 14 14 32 32 U1B U2C U3E U4E U5B U6B 74HCT273 74HCT139 74HCT08 74HCT08 29F010 SRAM DIP20 C1 DIP16 C2 DIP14 C3 DIP14 C4 DIP32 C5 DIP32 C6 0.1 uF 0.1 uF 0.1 uF 0.1 uF 0.1 uF 0.1 uF 8 7 7 10 16 16 AN101 PAGE 2 Z80 BANK-SWITCHING SCHEME CIRCUIT DESCRIPTION 4. CIRCUIT DESCRIPTION 1. Chip select decoder: One half of a 74HCT139 decoder serves to select ROM versus RAM. When A15 is high, RAM is selected; when A15 is low, ROM is selected. A15 is gated with /MREQ to assure that the memory chips are enabled only when the bus access is for memory, and only when the address lines are stable. 2. Bank switch latch: A 74HCT273 eight-bit latch serves as the bank switch latch. The user outputs bank switch information with a Z80 OUT instruction, which generates the output strobe /BANK. Typically a 74HCT138 or similar part (not shown in this schematic) will be used to generate this and other needed I/O strobes. At power-on, the /RESET signal resets all the bank switches to zero. 3. Eight AND gates: The latched bank switch output signals, BS0 through BS7, are connected to one input of each of eight 74HCT08 AND gates. The outputs of these gates are used to generate extra address lines for the ROM and RAM chips—three for the ROM, and five for the RAM. 4. A14 gating: Each of the eight 74HCT08 AND gates has its other input tied to Z80 address line A14. When A14 is high, the extra address lines will follow the values latched in the 74HCT273 bank switch latch. When A14 is low, the extra address lines will all be set low, regardless of the values latched in the bank switch latch. However the last values stored in the bank switch latch remain there, ready for the next access to a bank-switched memory area. 5. PAL option: The logic shown here could be embedded in a PAL to save PC board space. 5. MEMORY MAP 1. Four memory areas: Because of the way A14 is gated into the 74HCT08 inputs, the Z80 memory space has been divided into four areas, as shown below: AREA CHIP ADDRESS A15 A14 FUNCTION MEMORY SIZE 3 RAM C000-FFFF 1 1 BANK-SWITCHED RAM 31 BANKS, EACH 16K BYTES 2 RAM 8000-BFFF 1 0 BASE RAM 16K BYTES 1 ROM 4000-7FFF 0 1 BANK-SWITCHED ROM 7 BANKS, EACH 16K BYTES 0 ROM 0000-3FFF 0 0 BASE ROM 16K BYTES 2. ROM space: ROM occupies the low half of memory, from 0000 hex to 7FFF hex. 3. RAM space: RAM occupies higher memory, from 8000 hex to FFFF hex. 6. SOFTWARE NOTES 1. Area 2, Base RAM: The Base RAM area, containing addresses 8000-BFFF, will always be accessible no matter what setting has been stored in the bank-switch latch. The program stack should be assigned within this area, as well as any other temporary information that needs to be accessible from many parts of the software. 2. Area 0, Base ROM: The Base ROM area, containing addresses 0000-3FFF, will always be accessible regardless of the bank switch latch. The power-on start-up program must be stored at 0000 H, as usual for the Z80. The Z80 RESTART instruction vectors will automatically be located in Area 0. The Z80 interrupt vectors should also be stored in Area 0, so that they will always be accessible. AN101 PAGE 3 Z80 BANK-SWITCHING SCHEME SOFTWARE NOTES 3. Area 3, Bank-Switched RAM: Bank-switched RAM can now be used to provide additional RAM storage. In a communications application, for example, these banks serve as expanded buffers for incoming and outgoing messages. If the software uses these 31 banks for dedicated purposes like this, it is relatively straightforward to keep the RAM bank-switching straight. As an applications example, we are now receiving a long message, and bank switch bits [BS7..BS3] are set to [01000], meaning that we are storing data into the sixteenth 16K bank in RAM. During the receive process, SIO interrupts are continually being received. Each interrupt requires use of the program stack, and probably of some temporary RAM variables as well, all of which are in the Base RAM area. The bank-switching hardware takes care of accessing these RAM resources, without having to change the RAM bank-switch setting whenever there is an interrupt. 4. Area 1, Bank-Switched ROM: The seven switched ROM banks in Area 1 are typically used to store specific software tasks. In our systems we usually use a multi-tasking software executive that controls a number of independent jobs. Control passes from one job to another in round-robin fashion. Each ROM bank in Area 1 contains one or more jobs. Jobs typically do not overlap from one ROM bank to another. The multi-tasking executive is housed in Area 0, Common ROM, and when the executive turns on each job is succession, it also sets the ROM bank switch bits [BS2..BS0] to the appropriate values for the job being started.
Recommended publications
  • Sensors: Sensing and Data Acquisidon
    Sensors: Sensing and Data Acquisi3on Prof. Yan Luo For UMass Lowell 16.480/552 Sensors: Sensing and Data Acquisi3on 1 Prof. Yan Luo, UMass Lowell Outline • Sensors • Sensor interfacing • Sensor data conversion and acquisi3on • PIC microcontroller programming • Lab 1: Sensor design and data acquisi3on (a light intensity sensor) Sensors: Sensing and Data Acquisi3on 2 Prof. Yan Luo, UMass Lowell Basic Principle of Sensors • Transducer: a device that converts energy from one form to another • Sensor: converts a physical parameter to an electric output – Electric output is desirable as it enables further signal processing. • Actuator: coverts an electric signal to a physical output Sensors: Sensing and Data Acquisi3on 3 Prof. Yan Luo, UMass Lowell Sensors • Cameras • Analog sensors • Accelerometer - Con3nuously varying output • Rate gyro • Digital sensors • Strain gauge - on/off • Microphone - Pulse trains (freq convey measurement) • Magnetometer • Chemical sensors • Op3cal sensors Sensors: Sensing and Data Acquisi3on 4 Prof. Yan Luo, UMass Lowell Example: Photoresistor • Or Light Dependent Resistor (LDR) – Resistance decreases with increasing light intensity – Made of semiconductor – Photons absorbed cause electrons to jump into conduc3on band Sensors: Sensing and Data Acquisi3on 5 Prof. Yan Luo, UMass Lowell Interfacing with Sensors • Interface circuitry • ADC • Interfaces of the embedded system • SoVware drivers and APIs Sensors: Sensing and Data Acquisi3on 6 Prof. Yan Luo, UMass Lowell Example voltage divider circuit Vcc R2 V=Vcc x R1/(R1+R2) V R1 Sensors: Sensing and Data Acquisi3on 7 Prof. Yan Luo, UMass Lowell Analog-Digital Converter (ADC) • Types of ADC – Integrang ADC • Internal voltage controlled oscillator • slow – Successive approximaon ADC • Digital code driving the analog reference voltage – Flash ADC • A bank of comparators • Fast Sensors: Sensing and Data Acquisi3on 8 Prof.
    [Show full text]
  • "Firefly" Z80 General-Purpose Retro Computing Platform
    "FIREFLY" Z80 GENERAL-PURPOSE RETRO COMPUTING PLATFORM THREE FARTHING LABS http://www.threefarthing.com Page 1 of 13 PREFACE A project has to have a name and this one wound up being called "Firefly" as it©s the culmination of a wirewrap board begun several years ago while binge-watching the series of the same name. That board, in turn, was a redesign of a single board computer I created in 1998, creatively named the "SBCZ1." All three of these projects were begun as a chance to tinker with a processor I first met hands- on in 1984, the ZiLOG Z-80, though it was long-established by that time and dominated the business computer market. It was the CPU of preference behind most CP/M machines and CP/M was what I wanted to tinker with again, from the ground up ± not in some cozy emulator. When I began preparing to design the board I looked around on the Internet and found many excellent Z80 projects, including kit options. The choice was made to "roll my own" for numerous reasons. In the SBCZ1 I had most of a good design and wanted to retain a lot of hard work (done before I had Internet access, mind you). There were also specific reasons for wanting "to stay within ZiLOG canon" and work with a particular hardware configuration. I saw no kits that did just what I wanted in the way that I wanted. There was also a desire to maintain modularity and be extensible but not require a proliferation of modules for what I considered core functionality, yet great restraint was employed to keep "core functionality" spartan.
    [Show full text]
  • Efficient Automated Code Partitioning for Microcontrollers with Switchable
    Efficient Automated Code Partitioning for Microcontrollers with Switchable Memory Banks MICHAL CISZEWSKI and KONRAD IWANICKI, University of Warsaw 114 Switching active memory banks at runtime allows a processor with a narrow address bus to access memory that exceeds ranges normally addressable via the bus. Switching code memory banks is regaining interest in microcontrollers for the Internet of Things (IoT), which have to run continuously growing software, while at the same time consuming ultra-small amounts of energy. To make use of bank switching, such software has to be partitioned among the available banks and augmented with bank-switching instructions. In contrast to the augmenting, which is done automatically by a compiler, today the partitioning is normally done manually by programmers. However, since IoT software is cross-compiled on much more powerful machines than its target microcontrollers, it becomes possible to partition it automatically during compilation. In this article, we thus study the problem of partitioning program code among banks such that the resulting runtime performance of the program is maximized. We prove that the problem is NP-hard and propose a heuristic algorithm with a low complexity, so that it enables fast compilation, and hence interactive software development. The algorithm decomposes the problem into three subproblems and introduces a heuristic for each of them: (1) Which pieces of code to partition? (2) Which of them to assign to permanently mapped banks? and (3) How to divide the remaining ones among switchable banks? We integrate the algorithm, together with earlier ones, in an open-source compiler and test the resulting solution on synthetic as well as actual commercial IoT software bases, thereby demonstrating its advantages and drawbacks.
    [Show full text]
  • The Ultimate C64 Overview Michael Steil, 25Th Chaos Communication Congress 2008
    The Ultimate C64 Overview Michael Steil, http://www.pagetable.com/ 25th Chaos Communication Congress 2008 Retrocomputing is cool as never before. People play Look and Feel C64 games in emulators and listen to SID music, but few people know much about the C64 architecture A C64 only needs to be connected to power and a TV and its limitations, and what programming was like set (or monitor) to be fully functional. When turned back then. This paper attempts to give a comprehen- on, it shows a blue-on-blue theme with a startup mes- sive overview of the Commodore 64, including its in- sage and drops into a BASIC interpreter derived from ternals and quirks, making the point that classic Microsoft BASIC. In order to load and save BASIC computer systems aren't all that hard to understand - programs or use third party software, the C64 re- and that programmers today should be more aware of quires mass storage - either a “datasette” cassette the art that programming once used to be. tape drive or a disk drive like the 5.25" Commodore 1541. Commodore History Unless the user really wanted to interact with the BA- SIC interpreter, he would typically only use the BA- Commodore Business Machines was founded in 1962 SIC instructions LOAD, LIST and RUN in order to by Jack Tramiel. The company specialized on elec- access mass storage. LOAD"$",8 followed by LIST tronic calculators, and in 1976, Commodore bought shows the directory of the disk in the drive, and the chip manufacturer MOS Technology and decided LOAD"filename",8 followed by RUN would load and to have Chuck Peddle from MOS evolve their KIM-1 start a program.
    [Show full text]
  • Introduction to PIC 18 Microcontrollers
    Mod-5: PIC 18 Introduction 1 Module 5 Contents: Overview of PIC 18, memory organisation, CPU, registers, pipelining, instruction format, addressing modes, instruction set, interrupts, interrupt operation, resets, parallel ports, timers, CCP. Features of the PIC18 microcontroller 8-bit CPU 2 MB program memory space 256 bytes to 1KB of data EEPROM Up to 3968 bytes of on-chip SRAM 4 KB to 128KB flash program memory Sophisticated timer functions that include: input capture, output compare, PWM, real- time interrupt, and watchdog timer Serial communication interfaces: SCI SPI I2C and CAN Background debug mode (BDM) 10-bit A/D converter Memory protection capability Instruction pipelining Operates at up to 40 MHz crystal oscillator Overview of the PIC18 MCU Microchip has introduced six different lines of 8-bit MCUs over the years: 1. PIC12XXX: 8-pin, 12- or 14-bit instruction format 2. PIC14000: 28-pin, 14-bit instruction format (same as PIC16XX) 3. PIC16C5X: 12-bit instruction format 4. PIC16CXX: 14-bit instruction format 5. PIC17: 16-bit instruction format 6. PIC18: 16-bit instruction format Each line of the PIC MCUs supports different number of instructions with slightly different instruction formats and different design in their peripheral functions. This makes products designed with a different family of PIC MCUs incompatible. The members of the Muhammed Riyas A.M, Assistant Professor,Department of E.C.E, M.C.E.T Pathanamthitta Mod-5: PIC 18 Introduction 2 PIC18 family share the same instruction set and the same peripheral function design and provide from eight to more than 80 signal pins.
    [Show full text]
  • Microcontrollers Apnote AP0821
    查询AP0821供应商 捷多邦,专业PCB打样工厂,24小时加急出货 Microcontrollers ApNote AP0821 o additional file APXXXX01.EXE available C5xx / 80C5xx In-System FLASH Programming The following approach describes the proceeding for in-system reprogramming of an external (5V-only) FLASH code memory by using the internal ROM code. Due to the ´Havard Architecture´, an additional external logic (PLD) is used for a software switching mechanism between code and data memory. K. Scheibert / Siemens HL MC AT Semiconductor Group 08.96, Rel. 01 C5xx / 80C5xx In-System FLASH Programming 1 Memory Organization............................................................................................. 4 2 Hardware Description............................................................................................. 5 3 Functional Description of the ROM Software Routine ........................................ 7 AP0821 ApNote - Revision History Actual Revision : Rel.01 Previous Revison: Rel. none Page of Page of Subjects changes since last release) actual Rel. prev. Rel. Semiconductor Group 2 of 7 AP0821 08.96 C5xx / 80C5xx In-System FLASH Programming In-System FLASH Programming with hardware implemented bank switching capability The following information concerns all microcontrollers of the C5xx / SAB 80C5xx family which use an internal ROM mask in combination with an external code FLASH memory. The external FLASH memory can be used as reprogrammable code memory for the application software. This application focuses on SIEMENS 8-bit microcontroller derivatives with internal code memory (ROM) sizes of 8/16 Kbyte in maximum because of the overlapped code memory area of the FLASH memory of 8/16 Kbyte cannot be used: • C501-1R • C502-2R • C504-2R • C511(A)-R • C513(A)-R/-2R • C515-1R • SAB 80C535 • SAB 80C537 This application note describes the proceeding for the in-system reprogramming of application software by using special application hardware for memory bank switching and software programming service routines in the internal mask programmable ROM for external FLASH memories (5V-only).
    [Show full text]
  • The Triumphant March of the 6502.Pdf
    INFOTAINMENT THE 6502 The Triumphant March 30-year old design still inspires thousand Roelf Sluman Are eight-bit processors something from the past or is it still possible to do some- thing useful with them? Elektor Electronics went looking and discovered that the good-old 6502, in a world of threaded computing and dual-core processors, still has a following of faithful fans. In the 1970’s and 80’s three 8-bit processors dominated elegant 8-bit processor. Many thousands of enthusiasts the market: the 6809 from Motorola, the Z80 from Zilog across the whole world still work daily with the 6502 and the 6502 from MOS. By far the most popular of and make it do things that were not considered possible these three was the in 1975. 6502: its low cost (when introduced, the 6502 set you back about 25 dol- Price war History lars) and the advanced The 6502 processor cele- design for its time made When the 6502 was introduced in 1975 it cost brates its 30th anniver- sure that the 6502 con- about 25 dollars. That made it a serious com- sary this year. The intro- quered the world in a petitor to the processor it was copied from, the duction was preceded by short time as the brain in 6800, which by comparison costs a whopping a scandal: the designers popular home-computers 179 dollars. No wonder computer manufacturers of the 6502 had, in the such as the such as Apple and Commodore went for the first instance, developed Commodore 64 and the 6502.
    [Show full text]
  • Unlimited Code and Data Support for the Zilog® Z80 & Z180 Family Of
    White paper: Unlimited code and data support for the ZiLOG® Z80 & Z180 family of microprocessors. Softools’ development tools provide software engineers and programmers innovative and seemless code and data support for program development. These tools, along with ZiLOG's high performance Z180 processors, extend the life of these 8-bit processors. ZiLOG's Z180 Family Peripherals and Processor Performance a Platform for Users to Innovate The Z180 is ZiLOG's second generation Z80 based processor family. Building on its world famous Z80, ZiLOG's Z180 offers several feature and improvement that have made it an attractive platform for those who require higher CPU performance as well as peripheral integration. The Z180 CPU executes Z80 more efficiently, resulting in faster code throughput compared to a Z80 based system operating at the same speed. In addition, the Z180 family integrate a number of peripherals including high speed communication ports. One of the more used peripherals, however, is the Memory Management Unit, or MMU. This peripheral allow the Z180 family to address up to 1 Mbyte of code through a method called "code banking" or "memory paging" Introduction to Code Banking Code banking, or memory paging, is not a new concept and has been used for decades in many hardware and software systems. Hardware systems typically switch ROM or RAM pages or regions to map in various parts of code or data normally inaccessible. Software systems often paged memory by copying parts of program or data from one area or medium to a common paging area. This method is very prominent in the Windows® ZiLOG’s Z180-Class 8-bit Processors operating system.
    [Show full text]
  • Digital Research : CP/M 3 System Manual Page 1
    Digital Research : CP/M 3 System Manual Page 1 DIGITAL RESEARCH CP/M Plus (CP/M Version 3) Operating System System Guide COPYRIGHT Copyright (C) 1983 Digital Research Inc. All rights reserved. No part of this publication may be reproduced, transmitted, transcribed, stored in a retrieval system, or translated into any language or computer language, in any form or by any means, electronic, mechanical, magnetic, optical, chemical, manual or otherwise, without the prior written permission of Digital Research Inc., 60 Garden Court, Box DRI, Monterey, California 93942. DISCLAIMER DIGITAL RESEARCH INC. MAKES NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE CONTENTS HEREOF AND SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PURPOSE. Further, Digital Research Inc. reserves the right to revise this publication and to make changes from time to time in the content hereof without obligation of Digital Research Inc. to notify any person of such revision or changes. NOTICE TO USER From time to time changes are made in the filenames and in the files actually included on the distribution disk. This manual should not be construed as a representation or warranty that such files or facilities exist on the distribution disk or as part of the materials and programs distributed. Most distribution disks include a "README.DOC" file. This file explains variations from the manual which do constitute modification of the manual and the items included therewith. Be sure to read this file before using the software. TRADEMARKS CP/M and Digital Research and its logo are registered trademarks of Digital Research Inc. CP/M Plus, DDT, LINK-80, RMAC, SID, TEX, and XREF are trademarks of Digital Research Inc.
    [Show full text]
  • Micro II and Embedded Systems
    16.480/552 Micro II and Embedded Systems Introduction to PIC Microcontroller Revised based on slides from WPI ECE2801 Moving Towards Embedded Hardware Typical components of a PC: x86 family microprocessor Megabytes or more of main (volatile) memory Gigabytes or more of magnetic memory (disk) Operating System (w/ user interface) Serial I/O Parallel I/O Real-time clock Keyboard Video Display Sound card Mouse NIC (Network Interface Card) etc. UML 16.480/552 Micro II The PIC 16F87x Series Microcontroller Some of the characteristics of the PIC 16F87x series High performance, low cost, for embedded applications Only 35 instructions Each instruction is exactly one word long and is executed in 1 cycle (except branches which take two cycles ) 4K words (14bit) flash program memory 192 bytes data memory (RAM) + 128 bytes EEPROM data memory Eight level deep hardware stack Internal A/D converter, serial port, digital I/O ports, timers, and more! UML 16.480/552 Micro II What these changes mean when programming? Since there is no DOS or BIOS, you’ll have to write I/O functions yourself. Everything is done directly in assembly language. Code design, test, and debug will have to be done in parallel and then integrated after the hardware is debugged. Space matters! Limitations on memory may mean being very clever about algorithms and code design. UML 16.480/552 Micro II PIC16F87X UML 16.480/552 Micro II Harvard Architecture Program memory and Data memory are separated memories and they are accessed from separated buses. UML 16.480/552 Micro II Instruction Pipelining It takes one cycle to fetch the instruction and another cycle to decode and execute the instruction Each instruction effectively executes in one cycle An instruction that causes the PC to change requires two cycles.
    [Show full text]
  • Advantages and Pitfalls of Moving from an 8 Bit System to 32 Bit Architectures
    CORE Metadata, citation and similar papers at core.ac.uk Provided by Archive Ouverte en Sciences de l'Information et de la Communication Advantages and Pitfalls of Moving from an 8 bit System to 32 bit Architectures. David Kerr-Munslow To cite this version: David Kerr-Munslow. Advantages and Pitfalls of Moving from an 8 bit System to 32 bit Architectures.. Embedded Real Time Software and Systems (ERTS2010), May 2010, Toulouse, France. hal-02263470 HAL Id: hal-02263470 https://hal.archives-ouvertes.fr/hal-02263470 Submitted on 4 Aug 2019 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Advantages and Pitfalls of Moving from an 8 bit System to 32 bit Architectures. David Kerr-Munslow[1]. 1: Cortus S.A., Le Génésis, 97 rue de Freyr, 34000 Montpellier, France Abstract: We explore the implications of bus width notably: • Ease of Programming This paper explores the considerations of designers of embedded systems when they come to choosing • Code Density the bit width of the embedded CPU architecture, • Performance especially in the domain of System on Chip designs. • Real Time Considerations Two typical architectures are compared and contrasted, one 8 bit and the other 32 bits, the 8051 • Core Size and the Cortus APS3.
    [Show full text]
  • CALIFORNIA STATE UNIVERSITY, NORTHRIDGE RAM-DISK a Thesis
    CALIFORNIA STATE UNIVERSITY, NORTHRIDGE RAM-DISK A thesis submitted in partial satisfaction of the requirements for the degree of Master of Science in Engineering by Chung Ting Ho May, 1984 The Thesis of Chung Ting Ho is approved : Pr . John T. Jo , Cha1r California State University, Northridge ii TABLE OF CONTENTS Page Abstract : vi Chapter 1 DESIGN PHILOSOPHY AND THEORY 1 1.1 Overview l 1.2 : Design Background 4 1.3 Design Goal and Theory 7 Chapter 2 THEORY OF OPERATION 10 2.1 : System Monitor 10 2.2 : Operating System 12 2.3 : Custom Basic I/0 System for RAM-Disk 18 2.4 Description of The Block Diagram 22 Chapter 3 CIRCUIT DESCRIPTION 27 3.1 4146 Memory Chip 27 3.2 Z80A CPU 30 3.3 Detailed Circuit Description 34 3.4 Power Supply 41 Chapter 4 SOFTWARE DESCRIPTION 43 4.1 Self-Test Program 43 4.2 : Forrnating The RAM-Disk 44 4.3 : Custom Basic Input/Output System 45 Chapter 5 EVALUATION AND CONCLUSION 48 5.1 User Interface 48 5.2 : Performance Evaluation 49 5.3 : Conclusion and Comment 51 iii References 53 Appendix A CIRCUIT SCHEMATICS 54 Appendix B IC LISTING AND POWER REQUIREMENTS 58 Appendix c : SELF-TEST PROGRAM LISTING 59 Appendix D FORMATING PROGRAM LISTING 65 Appendix E MOVE PROGRAM LISTING 66 Appendix F CUSTOM BIOS DRIVE A PROGRAM LISTING 67 Appendix G CUSTOM BIOS DRIVE E PROGRAM LISTING 78 Figure 1 A MICRO-COMPUTER SYSTEM 1 Figure 2 A MOTHER-DAUGHTER RAM-DISK BOARD 8 Figure 3 : RAM-DISK BLOCK DIAGRAM 23 Figure 4 RAM-DISK INTERFACE FUNCTIONAL BLOCK DIAGRAM 26 Figure 5 4164 DYNAMIC RAM READ CYCLE TIMING 28 Figure 6 : 4164 DYNAMIC
    [Show full text]