United States Patent (19) (11) 4,445,170 Hughes Et Al

Total Page:16

File Type:pdf, Size:1020Kb

United States Patent (19) (11) 4,445,170 Hughes Et Al United States Patent (19) (11) 4,445,170 Hughes et al. 45 Apr. 24, 1984 54 COMPUTER SEGMENTED MEMORY Specification-Preliminary, Zilog, Inc., Cupertino, Oct. MANAGEMENT TECHNIQUE WHEREN 1979. TWO EXPANDABLE MEMORY PORTIONS Z8010 MMU Memory Management Unit, Technical ARE CONTAINED WITHNA SINGLE Manual-Preliminary, Zilog, Inc., Cupertino, Oct. 1980. SEGMENT Z8000 PLZ/ASM, Assembly Language Programming 75) Inventors: Ronald P. Hughes, Santa Clara; Manual, Zilog, Inc., Cupertino, Apr. 1979, pp. iii, v-ix, Douglas G. Swartz, Cupertino; Bruce 1-1 to 1-14. E. Weiner, Palo Alto, all of Calif. Primary Examiner-Raulfe B. Zache (73) Assignee: Zilog, Inc., Campbell, Calif. Attorney, Agent, or Firm-Majestic, Gallagher, Parsons 21 Appl. No.: 245,483 & Siebert (22 Filed: Mar. 19, 1981 (57) ABSTRACT Separate memory management units are described for 51) Int. Cl. ................................................ G06F 3/00 use with a central processing unit to separately control 52) U.S. Cl. .................................................... 364/200 expanding stack and data memory portions within a (58) Field of Search. 364/200 MS File, 900 MS File single logical memory segment. The stack and data (56) References Cited portions are prevented from expanding into each other by a break register which contains an address between U.S. PATENT DOCUMENTS the two memory portions and is updated as the stack 3,510,847 5/1970 Carlson ............................... 364/200 and data memory portions expand and contract. The 3,787,813 1/1974 Cole ........... ... 364/200 stack memory management unit only is enabled when a 4,037,215 7/1977 Birney ... ...... 364/200 portion of the memory is addressed on one side of the 4,177,510 12/1979 Appell ................................. 364/200 break value while the data memory management unit 4,268,903 5/1981 Miki .................................... 364/200 only is utilized when the address is on the other side of OTHER PUBLICATIONS the break value. Z8010 MMU Memory Management Unit, Product 11 Claims, 2 Drawing Figures U.S. Patent ,170 MOT](JBC]}}OSSEHOOVLÅE3. U.S. Patent Apr. 24, 1984 Sheet 2 of 2 4,445,170 USER STACK LOGICAL SEG ENT PHYSICAL 63 67 USER STACK PHYSICAL SEGMENT C 65 PHYSICAL LOGICAL SEGMENT B SEGMENT A PHYSICAL 47 SEGMENT A 6 FIG. 2. 4,445,170 1. 2 CPU depending upon whether that address is above or COMPUTER SEGMENTED MEMORY below the break address value stored in the register. MANAGEMENTTECHNIQUE WHEREIN TWO This break value may be updated to reflect the changing EXPANDABLE MEMORY PORTIONS ARE relative sizes of the memory portions. By being able to CONTAINED WITHNA SINGLE SEGMENT include two variable size memory portions within a single logical memory segment, more of the limited BACKGROUND OF THE INVENTION physical memory is then available to the programmer This invention relates generally to computer and for other uses. microcomputer systems structure, particularly to a cir Other advantages, objects and features of the various cuit technique for managing the computer system mem 10 aspects of the present invention are set forth in connec ory. tion with the following description of their preferred It is a common goal in any computer system, particu embodiments, which should be taken in conjunction larly in a microcomputer system, to minimize the with the accompanying drawings. amount of random access memory (RAM) that is re quired since memory elements are an expensive part of BRIEF DESCRIPTION OF THE DRAWINGS any system. At the same time, it is a goal of any com FIG. 1 is a block schematic diagram of a memory puter structure to provide flexibility in programming so management circuit improvement according to the that the limitations on memory size do not create added problems for the programmer. As a result, a technique present invention; and has been employed of using a separate memory manage 20 FIG. 2 illustrates both logical and physical memory ment unit (MNU) disposed between the microprocessor utilization by the circuit of FIG. 1. or other central processing unit (CPU) and the RAM. DESCRIPTION OF THE PREFERRED Use of the MMU allows the program to call for data in EMBODIMENT the memory at "logical” addresses that are converted by it to "physical' memory addresses where the data 25 FIG. 1 shows in block diagram form the schematic actually resides. The physical memory actually allo diagram of a computer system utilizing the circuit im cated is generally much less than the logical memory provements of the present invention. In this example, assumed to be available by the program. Thus, the the micro computer system is shown wherein the cen MMU is an important element in efficiently using the tral processing unit is a microprocessor 11 available as a physical memory available to carry out the software 30 single integrated circuit from Zilog, Inc., its Z8001 operations commanded of the system. microprocessor. The microprocessor communicates As a particular example of such a system, the Z8001 with a semiconductor RAM 13 of a standard type. The microprocessor available from Zilog, Inc. is utilized computer system would normally operate in conjunc with one or more Zilog Z8010 MMU memory manage tion with some magnetic media memory, such as floppy ment units. This particular microprocessor designates 35 discs or tape, but this is not shown in FIG. 1. The por on a segment bus one of 128 different logical memory tion of a complete computer system shown in FIG. 1 is segmen in which a particular location within the seg that which allows the microprocessor 11 to address ment is designated on an address bus. Each of the 128 particular portions of the memory 13. In that connec segments may have up to 64 K bytes of memory. The tion, three Z8010 memory management units 15, 17 and MMU may be utilized to control the size of each seg 19 are employed. Other portions of a complete com ment of the memory in increments of 256 bytes. The puter system, such as data paths and elements for ma MMU contains a register for each of 64 memory seg nipulating data, are not shown but are well known. ments that designates for the physical memory the ac There are many publications available which de tual beginning address of each physical segment as well scribe the structure and use of the commercially avail as the size of that segment. The MMU's ability to con 45 able microprocessor and memory management units of trol that size is useful for stack or variable size data Zilog, Inc. Examples of this are manuals available from memories. A variable stack memory size, for example, Zilog, Inc. itself. Two such manuals relating to the would occupy one of the 128 logical memory segments, Z8001 microprocessor and associated circuits are the resulting in eliminating usable logical memory within "Z8000 CPU Technical Manual' dated August, 1980 that segment that is outside the size of the stack. 50 and the "Z8000 PLZ/ASM Assembly Language Pro It is a primary object of the present invention to pro gramming Manual" dated April, 1979. A copy of pages vide an improved memory management system that 1-1 through 1-14 of the latter identified manual is better utilizes the available logical and physical memory reproduced as Appendix II hereto. The memory man space. agement units are described to some extent in those 55 publications and in more detail in the following two SUMMARY OF THE INVENTION publications: "Z8010 MMU Memory Management Briefly, the improvement of the present invention Unit, Product Specification', October, 1979, and utilizes two separate memory management units that are "Z8010 MMU Memory Management Manual, Techni operated one at a time to control the same logical mem cal Unit,' dated October, 1980. These four publications ory segment. Each of the portions of the memory seg are expressly incorporated by reference herein. ment controlled by each of the MMU's can be expand This particular type of microprocessor 11 includes a ing, thus making it possible to provide an expanding 16 bit address bus, the least significant bits being carried stack and an expanding data memory within a single by a bus 21 and the most significant bits being carried by logical memory segment. Overlapping of these two a bus 23, the address bus being shown as these two memory portions is prevented by a break register that 65 separate buses for ease of explanation. In addition, the contains an address within the segment that divides the microprocessor has a memory segment bus 25. The left two portions, one of the MMU's being enabled in re hand column of FIG. 2 shows a representation of the sponse to a particular address access command from the two of the available 128 logical memory segments that 4,445,170 3. 4. can be accessed individually by the appropriate code on tions of segment "A" are being accessed are made by the memory segment bus 25. The two logical segments the comparator 33 and its output control signals. Simi designated as "A" and "B" in FIG. 2 are shown for larly, the user register 29 contains an address for use explanation purposes. The microprocessor 11 views the with the memory logical segment "B". The stack MMU memory 13 as if it contained 128 such segments, each up 17 has one of its 64 segment descriptor registers devoted to 64 K bytes in size, but the physical memory 13 may to logical segment "A" and another of the registers contain less or a large memory will be accessed by devoted to logical segment "B". The MMU begins with several different users, thus making only a portion of it a reference logical address at the top of the segment and available to a given microprocessor.
Recommended publications
  • Memory Protection at Option
    Memory Protection at Option Application-Tailored Memory Safety in Safety-Critical Embedded Systems – Speicherschutz nach Wahl Auf die Anwendung zugeschnittene Speichersicherheit in sicherheitskritischen eingebetteten Systemen Der Technischen Fakultät der Universität Erlangen-Nürnberg zur Erlangung des Grades Doktor-Ingenieur vorgelegt von Michael Stilkerich Erlangen — 2012 Als Dissertation genehmigt von der Technischen Fakultät Universität Erlangen-Nürnberg Tag der Einreichung: 09.07.2012 Tag der Promotion: 30.11.2012 Dekan: Prof. Dr.-Ing. Marion Merklein Berichterstatter: Prof. Dr.-Ing. Wolfgang Schröder-Preikschat Prof. Dr. Michael Philippsen Abstract With the increasing capabilities and resources available on microcontrollers, there is a trend in the embedded industry to integrate multiple software functions on a single system to save cost, size, weight, and power. The integration raises new requirements, thereunder the need for spatial isolation, which is commonly established by using a memory protection unit (MPU) that can constrain access to the physical address space to a fixed set of address regions. MPU-based protection is limited in terms of available hardware, flexibility, granularity and ease of use. Software-based memory protection can provide an alternative or complement MPU-based protection, but has found little attention in the embedded domain. In this thesis, I evaluate qualitative and quantitative advantages and limitations of MPU-based memory protection and software-based protection based on a multi-JVM. I developed a framework composed of the AUTOSAR OS-like operating system CiAO and KESO, a Java implementation for deeply embedded systems. The framework allows choosing from no memory protection, MPU-based protection, software-based protection, and a combination of the two.
    [Show full text]
  • A Minimal Powerpc™ Boot Sequence for Executing Compiled C Programs
    Order Number: AN1809/D Rev. 0, 3/2000 Semiconductor Products Sector Application Note A Minimal PowerPCª Boot Sequence for Executing Compiled C Programs PowerPC Systems Architecture & Performance [email protected] This document describes the procedures necessary to successfully initialize a PowerPC processor and begin executing programs compiled using the PowerPC embedded application interface (EABI). The items discussed in this document have been tested for MPC603eª, MPC750, and MPC7400 microprocessors. The methods and source code presented in this document may work unmodiÞed on similar PowerPC platforms as well. This document contains the following topics: ¥ Part I, ÒOverview,Ó provides an overview of the conditions and exceptions for the procedures described in this document. ¥ Part II, ÒPowerPC Processor Initialization,Ó provides information on the general setup of the processor registers, caches, and MMU. ¥ Part III, ÒPowerPC EABI Compliance,Ó discusses aspects of the EABI that apply directly to preparing to jump into a compiled C program. ¥ Part IV, ÒSample Boot Sequence,Ó describes the basic operation of the boot sequence and the many options of conÞguration, explains in detail a sample conÞgurable boot and how the code may be modiÞed for use in different environments, and discusses the compilation procedure using the supporting GNU build environment. ¥ Part V, ÒSource Files,Ó contains the complete source code for the Þles ppcinit.S, ppcinit.h, reg_defs.h, ld.script, and MakeÞle. This document contains information on a new product under development by Motorola. Motorola reserves the right to change or discontinue this product without notice. © Motorola, Inc., 2000. All rights reserved. Overview Part I Overview The procedures discussed in this document perform only the minimum amount of work necessary to execute a user program.
    [Show full text]
  • Memory Management
    Memory Management These slides are created by Dr. Huang of George Mason University. Students registered in Dr. Huang’s courses at GMU can make a single machine readable copy and print a single copy of each slide for their own reference as long as the slide contains the copyright statement, and the GMU facilities are not used to produce the paper copies. Permission for any other use, either in machine-readable or printed form, must be obtained form the author in writing. CS471 1 Memory 0000 A a set of data entries 0001 indexed by addresses 0002 0003 Typically the basic data 0004 0005 unit is byte 0006 0007 In 32 bit machines, 4 bytes 0008 0009 grouped to words 000A 000B Have you seen those 000C 000D DRAM chips in your PC ? 000E 000F CS471 2 1 Logical vs. Physical Address Space The addresses used by the RAM chips are called physical addresses. In primitive computing devices, the address a programmer/processor use is the actual address. – When the process fetches byte 000A, the content of 000A is provided. CS471 3 In advanced computers, the processor operates in a separate address space, called logical address, or virtual address. A Memory Management Unit (MMU) is used to map logical addresses to physical addresses. – Various mapping technologies to be discussed – MMU is a hardware component – Modern processors have their MMU on the chip (Pentium, Athlon, …) CS471 4 2 Continuous Mapping: Dynamic Relocation Virtual Physical Memory Memory Space Processor 4000 The processor want byte 0010, the 4010th byte is fetched CS471 5 MMU for Dynamic Relocation CS471 6 3 Segmented Mapping Virtual Physical Memory Memory Space Processor Obviously, more sophisticated MMU needed to implement this CS471 7 Swapping A process can be swapped temporarily out of memory to a backing store (a hard drive), and then brought back into memory for continued execution.
    [Show full text]
  • Arm System Memory Management Unit Architecture Specification
    Arm® System Memory Management Unit Architecture Specification SMMU architecture version 3 Document number ARM IHI 0070 Document version D.a Document confidentiality Non-confidential Copyright © 2016-2020 Arm Limited or its affiliates. All rights reserved. Arm System Memory Management Unit Architecture Specifica- tion Release information Date Version Changes 2020/Aug/31 D.a• Update with SMMUv3.3 architecture • Amendments and clarifications 2019/Jul/18 C.a• Amendments and clarifications 2018/Mar/16 C• Update with SMMUv3.2 architecture • Further amendments and clarifications 2017/Jun/15 B• Amendments and clarifications 2016/Oct/15 A• First release ii Non-Confidential Proprietary Notice This document is protected by copyright and other related rights and the practice or implementation of the information contained in this document may be protected by one or more patents or pending patent applications. No part of this document may be reproduced in any form by any means without the express prior written permission of Arm. No license, express or implied, by estoppel or otherwise to any intellectual property rights is granted by this document unless specifically stated. Your access to the information in this document is conditional upon your acceptance that you will not use or permit others to use the information for the purposes of determining whether implementations infringe any third party patents. THIS DOCUMENT IS PROVIDED “AS IS”. ARM PROVIDES NO REPRESENTATIONS AND NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, SATISFACTORY QUALITY, NON-INFRINGEMENT OR FITNESS FOR A PARTICULAR PURPOSE WITH RESPECT TO THE DOCUMENT. For the avoidance of doubt, Arm makes no representation with respect to, and has undertaken no analysis to identify or understand the scope and content of, patents, copyrights, trade secrets, or other rights.
    [Show full text]
  • Introduction to Uclinux
    Introduction to uClinux V M Introduction to uClinux Michael Opdenacker Free Electrons http://free-electrons.com Created with OpenOffice.org 2.x Thanks to Nicolas Rougier (Copyright 2003, http://webloria.loria.fr/~rougier/) for the Tux image Introduction to uClinux © Copyright 2004-2007, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com Nov 20, 2007 1 Rights to copy Attribution ± ShareAlike 2.5 © Copyright 2004-2007 You are free Free Electrons to copy, distribute, display, and perform the work [email protected] to make derivative works to make commercial use of the work Document sources, updates and translations: Under the following conditions http://free-electrons.com/articles/uclinux Attribution. You must give the original author credit. Corrections, suggestions, contributions and Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license translations are welcome! identical to this one. For any reuse or distribution, you must make clear to others the license terms of this work. Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. License text: http://creativecommons.org/licenses/by-sa/2.5/legalcode Introduction to uClinux © Copyright 2004-2007, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com Nov 20, 2007 2 Best viewed with... This document is best viewed with a recent PDF reader or with OpenOffice.org itself! Take advantage of internal or external hyperlinks. So, don't hesitate to click on them! Find pages quickly thanks to automatic search.
    [Show full text]
  • CS 351: Systems Programming
    Virtual Memory CS 351: Systems Programming Michael Saelee <[email protected]> Computer Science Science registers cache (SRAM) main memory (DRAM) local hard disk drive (HDD/SSD) remote storage (networked drive / cloud) previously: SRAM ⇔ DRAM Computer Science Science registers cache (SRAM) main memory (DRAM) local hard disk drive (HDD/SSD) remote storage (networked drive / cloud) next: DRAM ⇔ HDD, SSD, etc. i.e., memory as a “cache” for disk Computer Science Science main goals: 1. maximize memory throughput 2. maximize memory utilization 3. provide address space consistency & memory protection to processes Computer Science Science throughput = # bytes per second - depends on access latencies (DRAM, HDD) and “hit rate” Computer Science Science utilization = fraction of allocated memory that contains “user” data (aka payload) - vs. metadata and other overhead required for memory management Computer Science Science address space consistency → provide a uniform “view” of memory to each process 0xffffffff Computer Science Science Kernel virtual memory Memory (code, data, heap, stack) invisible to 0xc0000000 user code User stack (created at runtime) %esp (stack pointer) Memory mapped region for shared libraries 0x40000000 brk Run-time heap (created by malloc) Read/write segment ( , ) .data .bss Loaded from the Read-only segment executable file (.init, .text, .rodata) 0x08048000 0 Unused address space consistency → provide a uniform “view” of memory to each process Computer Science Science memory protection → prevent processes from directly accessing
    [Show full text]
  • I.T.S.O. Powerpc an Inside View
    SG24-4299-00 PowerPC An Inside View IBM SG24-4299-00 PowerPC An Inside View Take Note! Before using this information and the product it supports, be sure to read the general information under “Special Notices” on page xiii. First Edition (September 1995) This edition applies to the IBM PC PowerPC hardware and software products currently announced at the date of publication. Order publications through your IBM representative or the IBM branch office serving your locality. Publications are not stocked at the address given below. An ITSO Technical Bulletin Evaluation Form for reader′s feedback appears facing Chapter 1. If the form has been removed, comments may be addressed to: IBM Corporation, International Technical Support Organization Dept. JLPC Building 014 Internal Zip 5220 1000 NW 51st Street Boca Raton, Florida 33431-1328 When you send information to IBM, you grant IBM a non-exclusive right to use or distribute the information in any way it believes appropriate without incurring any obligation to you. Copyright International Business Machines Corporation 1995. All rights reserved. Note to U.S. Government Users — Documentation related to restricted rights — Use, duplication or disclosure is subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corp. Abstract This document provides technical details on the PowerPC technology. It focuses on the features and advantages of the PowerPC Architecture and includes an historical overview of the development of the reduced instruction set computer (RISC) technology. It also describes in detail the IBM Power Series product family based on PowerPC technology, including IBM Personal Computer Power Series 830 and 850 and IBM ThinkPad Power Series 820 and 850.
    [Show full text]
  • Memory Hierarchies.Pages
    CPS311 Lecture: Memory Hierarchies Last Revised October 21, 2019 Objectives: 1. To introduce cache memory 2. To introduce logical-physical address mapping 3. To introduce virtual memory Materials 1. Memory System Demo 2. Files for demo: CAMCache1ByteLine.parameters, CAMCache8ByteLine.parameters, DMCache.parameters, SACache.parameters, WBCache.parameters, NonVirtualNoTLB.parameters, NonVirtualWithTLB.system, Virtual.parameters, Full.parameters 3. AMAT Calculation example handout I. Introduction A.In the previous lecture, we looked at the basic building blocks of memory systems: the individual devices. We now focus on complete memory systems. B. Since every instruction executed by the CPU requires at least one memory access (to fetch the instruction) and often more, the performance of memory has a strong impact on system performance. In fact, the overall system cannot perform better than its memory system. 1. Note that we are distinguishing between the CPU and the memory system on a functional basis. The CPU accesses memory both when fetching an instruction, and as a result of executing instructions that reference memory (such as lw and sw on MIPS). 2. We will consider the memory system to be a logical unit separate from the CPU, even though it is often the case that, for performance reasons, some portions of it physically reside on the same chip as the CPU. !1 C. At one point in time, the speed of the dominant technology used for memory was well matched to the speed of the CPU. This, however, is not the case today (and has not been the case - in at least some portions of the computer system landscape - for decades).
    [Show full text]
  • Understanding the Linux Kernel, 3Rd Edition by Daniel P
    1 Understanding the Linux Kernel, 3rd Edition By Daniel P. Bovet, Marco Cesati ............................................... Publisher: O'Reilly Pub Date: November 2005 ISBN: 0-596-00565-2 Pages: 942 Table of Contents | Index In order to thoroughly understand what makes Linux tick and why it works so well on a wide variety of systems, you need to delve deep into the heart of the kernel. The kernel handles all interactions between the CPU and the external world, and determines which programs will share processor time, in what order. It manages limited memory so well that hundreds of processes can share the system efficiently, and expertly organizes data transfers so that the CPU isn't kept waiting any longer than necessary for the relatively slow disks. The third edition of Understanding the Linux Kernel takes you on a guided tour of the most significant data structures, algorithms, and programming tricks used in the kernel. Probing beyond superficial features, the authors offer valuable insights to people who want to know how things really work inside their machine. Important Intel-specific features are discussed. Relevant segments of code are dissected line by line. But the book covers more than just the functioning of the code; it explains the theoretical underpinnings of why Linux does things the way it does. This edition of the book covers Version 2.6, which has seen significant changes to nearly every kernel subsystem, particularly in the areas of memory management and block devices. The book focuses on the following topics: • Memory management, including file buffering, process swapping, and Direct memory Access (DMA) • The Virtual Filesystem layer and the Second and Third Extended Filesystems • Process creation and scheduling • Signals, interrupts, and the essential interfaces to device drivers • Timing • Synchronization within the kernel • Interprocess Communication (IPC) • Program execution Understanding the Linux Kernel will acquaint you with all the inner workings of Linux, but it's more than just an academic exercise.
    [Show full text]
  • 18-447: Computer Architecture Lecture 18: Virtual Memory III
    18-447: Computer Architecture Lecture 18: Virtual Memory III Yoongu Kim Carnegie Mellon University Spring 2013, 3/1 Upcoming Schedule • Today: Lab 3 Due • Today: Lecture/Recitation • Monday (3/4): Lecture – Q&A Session • Wednesday (3/6): Midterm 1 – 12:30 – 2:20 – Closed book – One letter-sized cheat sheet • Can be double-sided • Can be either typed or written Readings • Required – P&H, Chapter 5.4 – Hamacher et al., Chapter 8.8 • Recommended – Denning, P. J. Virtual Memory. ACM Computing Surveys. 1970 – Jacob, B., & Mudge, T. Virtual Memory in Contemporary Microprocessors. IEEE Micro. 1998. • References – Intel Manuals for 8086/80286/80386/IA32/Intel64 – MIPS Manual Review of Last Lecture • Two approaches to virtual memory 1. Segmentation • Not as popular today 2. Paging • What is usually meant today by “virtual memory” • Virtual memory requires HW+SW support – HW component is called the MMU • Memory management unit – How to translate: virtual ↔ physical addresses? Review of Last Lecture (cont’d) 1. Segmentation – Divide the address space into segments • Physical Address = BASE + Virtual Address – Case studies: Intel 8086, 80286, x86, x86-64 – Advantages • Modularity/Isolation/Protection • Translation is simple – Disadvantages • Complicated management • Fragmentation • Only a few segments are addressable at the same time Review of Last Lecture (cont’d) 2. Paging – Virtual address space: Large, contiguous, imaginary – Page: A fixed-sized chunk of the address space – Mapping: Virtual pages → physical pages – Page table: The data structure that stores the mappings • Problem #1: Too large – Solution: Hierarchical page tables • Problem #2: Large latency – Solution: Translation Lookaside Buffer (TLB) – Case study: Intel 80386 – Today, we’ll talk more about paging ..
    [Show full text]
  • Virtual Memory and Linux
    Virtual Memory and Linux Matt Porter Embedded Linux Conference Europe October 13, 2016 About the original author, Alan Ott ● Unfortunately, he is unable to be here at ELCE 2016. ● Veteran embedded systems and Linux developer ● Linux Architect at SoftIron – 64-bit ARM servers and data center appliances – Hardware company, strong on software – Overdrive 3000, more products in process Physical Memory Single Address Space ● Simple systems have a single address space ● Memory and peripherals share – Memory is mapped to one part – Peripherals are mapped to another ● All processes and OS share the same memory space – No memory protection! – Processes can stomp one another – User space can stomp kernel mem! Single Address Space ● CPUs with single address space ● 8086-80206 ● ARM Cortex-M ● 8- and 16-bit PIC ● AVR ● SH-1, SH-2 ● Most 8- and 16-bit systems x86 Physical Memory Map ● Lots of Legacy ● RAM is split (DOS Area and Extended) ● Hardware mapped between RAM areas. ● High and Extended accessed differently Limitations ● Portable C programs expect flat memory ● Multiple memory access methods limit portability ● Management is tricky ● Need to know or detect total RAM ● Need to keep processes separated ● No protection ● Rogue programs can corrupt the entire system Virtual Memory What is Virtual Memory? ● Virtual Memory is a system that uses an address mapping ● Maps virtual address space to physical address space – Maps virtual addresses to physical RAM – Maps virtual addresses to hardware devices ● PCI devices ● GPU RAM ● On-SoC IP blocks What is Virtual Memory? ● Advantages ● Each processes can have a different memory mapping – One process's RAM is inaccessible (and invisible) to other processes.
    [Show full text]
  • IA-32 Architecture
    Outline IA-32 Architecture Intel Microprocessors IA-32 Registers Computer Organization Instruction Execution Cycle & IA-32 Memory Management Assembly Language Programming Dr Adnan Gutub aagutub ‘at’ uqu.edu.sa [Adapted from slides of Dr. Kip Irvine: Assembly Language for Intel-Based Computers] Most Slides contents have been arranged by Dr Muhamed Mudawar & Dr Aiman El-Maleh from Computer Engineering Dept. at KFUPM 45/٢ IA-32 Architecture Computer Organization and Assembly Language slide Intel Microprocessors Intel 80286 and 80386 Processors Intel introduced the 8086 microprocessor in 1979 80286 was introduced in 1982 8086, 8087, 8088, and 80186 processors 24-bit address bus ⇒ 224 bytes = 16 MB address space 16-bit processors with 16-bit registers Introduced protected mode 16-bit data bus and 20-bit address bus Segmentation in protected mode is different from the real mode Physical address space = 220 bytes = 1 MB 80386 was introduced in 1985 8087 Floating-Point co-processor First 32-bit processor with 32-bit general-purpose registers Uses segmentation and real-address mode to address memory First processor to define the IA-32 architecture Each segment can address 216 bytes = 64 KB 32-bit data bus and 32-bit address bus 8088 is a less expensive version of 8086 232 bytes ⇒ 4 GB address space Uses an 8-bit data bus Introduced paging , virtual memory , and the flat memory model 80186 is a faster version of 8086 Segmentation can be turned off 45/٤ 45 IA-32 Architecture Computer Organization and Assembly Language slide/٣
    [Show full text]