DAT2343 The Bootstrap Process © Alan T. Pinck / Algonquin College; 2003.

Slides:



Advertisements
Similar presentations
Memory Management: Overlays and Virtual Memory
Advertisements

The 8051 Microcontroller and Embedded Systems
INSTRUCTION SET ARCHITECTURES
There are two types of addressing schemes:
Programming 68HC11.
SUPPLEMENTARY CHAPTER 2 Instruction Addressing Modes
 Suppose for a moment that you were asked to perform a task and were given the following list of instructions to perform:
Slide 1CPU Emulator Tutorial This program is part of the software suite that accompanies the book The Digital Core, by Noam Nisan and Shimon Schocken 2003,
RAM Random access memory, or RAM for short, is active during the processing function. RAM is often referred to as “temporary memory.” RAM consists of electronic.
The Little man computer
DAT2343 Comparison of The LMC and General Computer Models © Alan T. Pinck / Algonquin College; 2003.
DAT x86 “Real” Memory Addressing © Alan T. Pinck / Algonquin College; 2003.
Target Processor Directives , When using.386, the program can only run on 386 and above processors.
Basic Input Output System
LMC Little Moron Computer
Memory - Registers Instruction Sets
Toward a general purpose computer II Example: Game of Life.
Software Development and Software Loading in Embedded Systems.
6. The CPU and Memory Chapt. 7.
The Computer Processor
1 CS Programming Languages Random Access Machines Jeremy R. Johnson.
How Hardware and Software Work Together
An Interactive Web-Based Simulation of a General Computer Architecture
DAT2343 Accessing Services Through Interrupts © Alan T. Pinck / Algonquin College; 2003.
Vintage Computer Hardware 101 Featuring the MITS Altair 680b Bill Degnan.
Computer Architecture and the Fetch-Execute Cycle
Computer Architecture and the Fetch-Execute Cycle
CHAPTER 6: The Little Man Computer
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
DH2T 34 – HNC Computer Architecture 1 Lecture 14 The Fetch-Decode-Execute Cycle [1]. © C Nyssen/Aberdeen College 2003 All images © C Nyssen/Aberdeen College.
D75P 34 – HNC Computer Architecture
Lecture Set 4 Programming the 8051.
September 26, 2001Systems Architecture I1 Systems Architecture I (CS ) Lecture 2: Implementation of a Simplified Computer Jeremy R. Johnson Wednesday,
© GCSE Computing Candidates should be able to:  describe the characteristics of an assembler Slide 1.
Computer Systems Organization
WHAT IS THE VALUE OF X? x = 0 for value in [3, 41, 12, 9, 74, 15] : if value < 10 : x = x + value print x.
Computer Systems – Machine & Assembly code. Objectives Machine Code Assembly Language Op-code Operand Instruction Set.
DAT2343 Implementing Standard Logic Flows with 80x86 Assembler © Alan T. Pinck / Algonquin College; 2003.
This is where you can reset and run your program. If your program has an “INP” (input) command, you will type it in this box here. Using the LMC These.
Elements of Computing Systems, Nisan & Schocken, MIT Press, Chapter 4: Machine Language slide 1www.nand2tetris.org Building a Modern.
Jeremy R. Johnson William M. Mongan
Mastering LMC Coding Part #1 Introduction to Low Level Languages Introduction to Little Man computer Simple examples (demos) with video tutorials included.
Bootstrap Tutorial Overview Objective Learn how to use the bootstrap for configuring the system. Requirements Installed Version of.
F453 Module 8: Low Level Languages 8.1: Use of Computer Architecture.
The Little man computer
CHAPTER 6: The Little Man Computer
BIOS & CMOS.
ECE 3430 – Intro to Microcomputer Systems
System Programming and administration
CHAPTER 6: The Little Man Computer
Lesson Objectives A note about notes: Aims
The 8051 Microcontroller and Embedded Systems
Computer System Structures
Starter Read the Feedback Click on Add new Feedback Open Realsmart
CHAPTER 6: The Little Man Computer
Subroutines and the Stack
Systems Architecture I (CS ) Lecture 2: A Simplified Computer
Accessing Services Through Interrupts
Computer Architecture
Embedded System Development Lecture 13 4/11/2007
MARIE: An Introduction to a Simple Computer
ECE 3430 – Intro to Microcomputer Systems
DO IT NOW The LMC has the following instruction set:
GCSE OCR 1 The CPU Computer Science J276 Unit 1
DAT2343 LMC Simulator Usage © Alan T. Pinck / Algonquin College; 2003.
Objectives Describe common CPU components and their function: ALU Arithmetic Logic Unit), CU (Control Unit), Cache Explain the function of the CPU as.
Systems Architecture I (CS ) Lecture 1: Random Access Machines
Learning how to use the Little man computer
Computer Architecture and System Programming Laboratory
Little Man Computer.
Presentation transcript:

DAT2343 The Bootstrap Process © Alan T. Pinck / Algonquin College; 2003

What is a Bootstrap? A bootstrap program is a program which is used to load other programs (usually the Operating System); it needs to be automatically available when a computer is started. A bootstrap program is typically embedded in a computer as codes in ROM.

Requirement for a Bootstrap Without a bootstrap program, every program would need to be manually loaded into memory one bit at a time before it could be run. A bootstrap is a “generic” program loader which allows different Operating Systems or programs to be loaded and run based on installed (usually disk-based) components.

ROM Considerations Unless the bootstrap is embedded in ROM, it would need to be manually loaded, bit-by- bit. However, a ROM bootstrap uses up memory address spaces which can not be used for other programs later (after the ROM bootstrap has no further useful purpose)

How a Bootstrap Loader Might Work input countOfWordsToLoad set ptr to lowestAddressForApplications while (--countOfWordsToLoad) >= 0 input to [ptr] location ptr++ endwhile jump to lowestAddressForApplications

Problems Implementing for LMC Difficult to simulate indirect addressing (the “input to [ptr] location” instruction. any modifiable value must be in RAM (although the bootstrap program must be in ROM)

Implementation in LM-Assembler (assuming ROM starts at 80) ORG 76 // in RAM // subr copied from ROM SRET DAT SSTO DAT SJMP DAT // modifiable variable COUNT DAT // start of ROM ORG 80 // in ROM BOOT IN STO COUNT LDA XSTO STO SSTO LDA XRET STO SRET WHIL LDA COUNT SUB ONE STO COUNT SKPZ JMP 00 // start of app IN CALL SSTO LDA SSTO ADD ONE STO SSTO JMP WHIL ONE DAT 001 XSTO STO 00 XRET JMP SRET

Effects of placing the Bootstrap ROM in high memory addresses When the LMC bootstrap code (from previous slide) is implemented using ROM starting at mailbox address 80, the “Reset” button function needs to be modified to reset the counter to 80 instead of 00. In the general computer model, a “power- on” must set the instruction pointer to the first bootstrap instruction in ROM.

Effects of Alternative Placement of Bootstrap ROM in Low Memory If the bootstrap loader where placed in low memory (at addresses starting at 00 for the LMC), then all other programs would need to be coded with the assumption of starting at some other, higher address. This happened in CP/M microcomputers (which preceded MS-DOS); all applications were assumed to start at address 0100 (hex).

End of Lecture