Design of a General Purpose 8-Bit RISC Processor for Computer Architecture Learning

Total Page:16

File Type:pdf, Size:1020Kb

Design of a General Purpose 8-Bit RISC Processor for Computer Architecture Learning Design of a General Purpose 8-bit RISC Processor for Computer Architecture Learning Antonio Hernández Zavala1, Oscar Camacho Nieto3, Jorge A. Huerta Ruelas1, Arodí R. Carvallo Domínguez2 1 Instituto Politécnico Nacional, Centro de Investigación en Ciencia Aplicada y Tecnología Avanzada, Mechatronics Department, Querétaro, Mexico 2 Instituto Politécnico Nacional, Unidad Profesional Interdisciplinaria en Ingeniería y Tecnologías Avanzadas, Engineering Department, Mexico City, Mexico 3 Instituto Politécnico Nacional, Centro de Innovación y Desarrollo Tecnológico en Cómputo, Mexico City, Mexico {anhernandezz, ocamacho, jhuertar, acarvallo}@ipn.mx Abstract. Computers are becoming indispensable for Computer types differ in the amount of manipulating most everyday consumer products, information they can process. As information is ranging from communications and domestic electronics grouped into 8-bit data packages, there are 8, 16, to industrial processes monitoring and control. High 32, and 64-bit computers. Today’s devices such as performance computer design is not only subject to the desktops, laptops, notebooks, or tablets are 32 and technology used for its implementation, it is also a matter of efficient training. The skills that must prevail in a good 64-bit computers. For specific tasks in computer designer come from the type of courses taken communication, automotive, and industrial and the tools employed during them. This work shows appliances, 16-bit computers are commonly used. the design of an 8-bit RISC soft-core processor However, 8-bit computers are the number one dedicated to a complete understanding of computer sales processors in the world as they are used as architecture. We consider this Processor an effective controllers for simple computational tasks. hands-on training solution for the comprehension of a According to the divide and conquer principle, a computer from its lowest level up to testing. common personal computer is divided into smaller Keywords. Computer architecture, digital design, digital ones (commonly 8-bit) which share information logic, microprocessor, programmable logic devices, with the main computer (32 or 64-bit). An 8-bit training system. processor commonly manipulates the drivers for almost every component card inside a computer. It is noteworthy to mention that 8-bit type processors 1 Introduction are widely used in home appliances and industrial specific systems. Nowadays, computers perform required In order to train engineering students in the calculations for almost all electronic devices in the computer architecture field, it becomes necessary market. Computer hardware is build based upon to have the correct tools. In this sense, there have binary operations to satisfy a set of mathematical, been different approaches in which students use data transfer, and control instructions. The basic hardware or software tools with the purpose of instructions realized directly by hardware are understanding the processor architecture. known as the processor instruction set. It is used Our purpose is to provide students with a for the creation of structured software programs for flexible but consistent tool for understanding data manipulation in problem solving. computer architecture from its basics. This work Computación y Sistemas, Vol. 19, No. 2, 2015, pp. 371–385 ISSN 1405-5546 doi: 10.13053/CyS-19-2-1941 372 Antonio Hernández Zavala, Oscar Camacho Nieto, Jorge A. Huerta Ruelas, Arodí R. Carvallo Domínguez presents the design of an 8-bit data width 4. Hardware Description Languages HDL. Each processor with the Harvard architecture and the functional unit is programmed using an HDL Reduced Instruction Set (RISC) for educational (Verilog or VHDL) which is compiled to create a purposes. It includes a basic instruction set and all logical array for the processor description. Next the functional blocks such as program and data step is to download it into a device. This memories, general-purpose registers, and a simple approach is fast to carry out and implement. Arithmetical Logical Unit (ALU) for basic 5. Logic blocks. This approach is also intended operations. Its operating mode is multi-cycle for programmable logic devices based in the execution due to its easy visualization and use of basic logical gates. The construction of effectiveness. The processor implementation is in each functional unit is by means of the union of a Xilinx Spartan-3E FPGA. pre-constructed blocks. This approach allows The organization of the paper is as follows: students to fully understand a processor from Section 2 explains current methodologies used in its basics along with its integration and the computer architecture courses. Section 3 synchronization of the functional blocks. introduces some general and basic concepts concerning computer architecture. Section 4 In the paper category, Stuart Madnick designed presents the processor development, describing the “Little Man Computer LMC” in 1965 [2] to teach the operation of each functional unit. Finally, students. Nowadays, there is a modern version of Section 5 presents the results from tests and his 3-digit Von Neumann computer which has all compilations, along with a comparative discussion. the basic computer features and it can be programmed either in machine code or in assembly code. These new versions include a 2 Computer Architecture Education graphical user interface and a compiler. Another paper approach is the “CARDIAC” computer It is noteworthy that the educational processors developed by David Hagelbarger and Saul theme has been widely explored since Edmund Fingerman from Bell Laboratories in 1968 [3], it is Berkeley and Robert Jensen made the first 2-bit a processor made of cardboard which nowadays is desktop computer implementation using relays in implemented in a simulator software. Finally, the 1950 [1]. Since then, there have been five different “Paper Processor” developed by Saito Yutaka in approaches used to explain computer architecture: 2010 [4] is another tool to understand processor behavior. 1. Paper. This was the first approach to teach In the hardware approach there are many computer architecture because of the limited proposals starting with [1] which is a 2-bit relay computer availability. It was based on the use based computer. In this approach it is common to of pencil and paper to understand the use MSI digital components such as TTL’s to instruction execution flow by means of construct a computer as in the 16-bit Glen G. drawings. Finally, with high limitations, students Langdon “SC-16” processor in 1982 [5], the 32-bit were able to understand the general functioning Hennessy-Patterson “DLX” processor in 1990 [6] of a computer. which was based on the MIPS and is still used with 2. Simple Hardware. This type of computer is TTL’s by ElAarag in [7]. The 16-bit Bradford constructed using available technology. There Rodriguez “PISC” Processor in 1994 [8] and the are relay and TTL versions that can show the 32-bit MIT “Beta” processor in 1997 [9] are based physical interaction among the computer on the DEC computer. The hardware approach for modules. Its main disadvantage is the time computer architecture courses is a very good invested in the wiring process. exercise to synchronize data transfer between 3. Simulator. This is a software-based simulator functional blocks, although using wires to build that allows the execution of a code to see how those complex connections is extremely time- each functional unit works in a computer. The consuming. disadvantage is that it does not allow interaction There are several simulation tools for the with physical devices. computer architecture teaching approach [10-16]. Computación y Sistemas, Vol. 19, No. 2, 2015, pp. 371–385 ISSN 1405-5546 doi: 10.13053/CyS-19-2-1941 Design373 of a General Purpose 8-bit RISC Processor for Computer Architecture Learning Most of these are graphical environments in which word (64-bit). This is how computers are classified the student can see all the functional modules of a according to the amount of information they can processor and data transfer among them. It also process (i.e. 8, 16, 32, 64-bit). allows the interaction to make variations in the All computers perform data transfer instructions testing code, registers, or memories. These in order to interchange data among the different characteristics are advantageous given that there memories and peripherals. There are integer is no need to have physical processors. At the arithmetic processors, floating point processors, same time it is its weakness, since there is no digital signal processors, and application specific interaction with physical devices. processors. Integer arithmetic processors are best For the case of the HDL language approach suited for general-purpose applications. Thus, it is implementations, there are also many types of possible to find byte, word, dword, and qword sized didactical processors in 8, 16, and 32-bit versions general-purpose processors. [17, 23]. This option allows the physical According to the architecture of the functional construction of a simple computer by using FPGA elements, there are two architectures: the Von devices programmed by HDL language. The Neumann architecture and the Harvard advantage is that the time required to develop a architecture. The main difference is in the memory processor is short, but the main disadvantage is elements, given that the Von Neumann the lack of understanding of the physical data flow architecture shares the program and data memory induced by programming. in a single bus connection. The Harvard In the logic blocks approach, the option is to architecture has two separate memories for build a simple computer by using schematic mode. program and data, each with an independent bus A graphical user interface allows gate level design connection. There are also architectural by placing components in a spreadsheet. It is easy techniques applied to any case in order to increase to use, and data flow between the components is the performance such as pipelining and straightforward. It is even more comprehensive if parallelism. we can create all of the functional blocks out of According to the technology used for the logical gates.
Recommended publications
  • Microprocessor Architecture
    EECE416 Microcomputer Fundamentals Microprocessor Architecture Dr. Charles Kim Howard University 1 Computer Architecture Computer System CPU (with PC, Register, SR) + Memory 2 Computer Architecture •ALU (Arithmetic Logic Unit) •Binary Full Adder 3 Microprocessor Bus 4 Architecture by CPU+MEM organization Princeton (or von Neumann) Architecture MEM contains both Instruction and Data Harvard Architecture Data MEM and Instruction MEM Higher Performance Better for DSP Higher MEM Bandwidth 5 Princeton Architecture 1.Step (A): The address for the instruction to be next executed is applied (Step (B): The controller "decodes" the instruction 3.Step (C): Following completion of the instruction, the controller provides the address, to the memory unit, at which the data result generated by the operation will be stored. 6 Harvard Architecture 7 Internal Memory (“register”) External memory access is Very slow For quicker retrieval and storage Internal registers 8 Architecture by Instructions and their Executions CISC (Complex Instruction Set Computer) Variety of instructions for complex tasks Instructions of varying length RISC (Reduced Instruction Set Computer) Fewer and simpler instructions High performance microprocessors Pipelined instruction execution (several instructions are executed in parallel) 9 CISC Architecture of prior to mid-1980’s IBM390, Motorola 680x0, Intel80x86 Basic Fetch-Execute sequence to support a large number of complex instructions Complex decoding procedures Complex control unit One instruction achieves a complex task 10
    [Show full text]
  • What Do We Mean by Architecture?
    Embedded programming: Comparing the performance and development workflows for architectures Embedded programming week FABLAB BRIGHTON 2018 What do we mean by architecture? The architecture of microprocessors and microcontrollers are classified based on the way memory is allocated (memory architecture). There are two main ways of doing this: Von Neumann architecture (also known as Princeton) Von Neumann uses a single unified cache (i.e. the same memory) for both the code (instructions) and the data itself, Under pure von Neumann architecture the CPU can be either reading an instruction or reading/writing data from/to the memory. Both cannot occur at the same time since the instructions and data use the same bus system. Harvard architecture Harvard architecture uses different memory allocations for the code (instructions) and the data, allowing it to be able to read instructions and perform data memory access simultaneously. The best performance is achieved when both instructions and data are supplied by their own caches, with no need to access external memory at all. How does this relate to microcontrollers/microprocessors? We found this page to be a good introduction to the topic of microcontrollers and ​ ​ microprocessors, the architectures they use and the difference between some of the common types. First though, it’s worth looking at the difference between a microprocessor and a microcontroller. Microprocessors (e.g. ARM) generally consist of just the Central ​ ​ Processing Unit (CPU), which performs all the instructions in a computer program, including arithmetic, logic, control and input/output operations. Microcontrollers (e.g. AVR, PIC or ​ 8051) contain one or more CPUs with RAM, ROM and programmable input/output ​ peripherals.
    [Show full text]
  • Assignment Solutions
    Week 1: Assignment Solutions 1. Which of the following statements are true? a. The ENIAC computer was built using mechanical relays. b. Harvard Mark1 computer was built using mechanical relays. c. PASCALINE computer could multiply and divide numbers by repeated addition and subtraction. d. Charles Babbage built his automatic computing engine in 19th century. Solution: ((b) and (c)) ENIAC was built using vacuum tubes. Charles Babbage designed his automatic computing engine but could not built it. 2. Which of the following statements are true for Moore’s law? a. Moore’s law predicts that power dissipation will double every 18 months. b. Moore’s law predicts that the number of transistors per chip will double every 18 months. c. Moore’s law predicts that the speed of VLSI circuits will double every 18 months. d. None of the above. Solution: (b) Moore’s law only predicts that number of transistors per chip will double every 18 months. 3. Which of the following generates the necessary signals required to execute an instruction in a computer? a. Arithmetic and Logic Unit b. Memory Unit c. Control Unit d. Input/Output Unit Solution: (c) Control unit acts as the nerve center of a computer and generates the necessary control signals required to execute an instruction. 4. An instruction ADD R1, A is stored at memory location 4004H. R1 is a processor register and A is a memory location with address 400CH. Each instruction is 32-bit long. What will be the values of PC, IR and MAR during execution of the instruction? a.
    [Show full text]
  • ESC-470: ARM 9 Instruction Set Architecture with Performance
    ARM 9 Instruction Set Architecture Introduction with Performance Perspective Joe-Ming Cheng, Ph.D. ARM-family processors are positioned among the leaders in key embedded applications. Many presentations and short lectures have already addressed the ARM’s applications and capabilities. In this introduction, we intend to discuss the ARM’s instruction set uniqueness from the performance prospective. This introduction is also trying to follow the approaches established by two outstanding textbooks of David Patterson and John Hennessey [PetHen00] [HenPet02]. 1.0 ARM Instruction Set Architecture Processor instruction set architecture (ISA) choices have evolved from accumulator, stack, register-to- memory, to register-register (load-store) organization. ARM 9 ISA is a load-store machine. ARM 9 ISA takes advantage of its smaller set of registers (16 vs. many 32-register processors) to incorporate more direct controls and achieve high encoding density. ARM’s load or store multiple register instruction, for example , allows enlisting of all possible registers and conditional execution in one instruction. The Thumb mode instruction set is another exa mple of how ARM ISA facilitates higher encode density. Rather than compressing the code, Thumb -mode instructions are two 16-bit instructions packed in a 32-bit ARM-mode instruction space. The Thumb -mode instructions are a subset of ARM instructions. When executing in Thumb mode, a single 32-bit instruction fetch cycle effectively brings in two instructions. Thumb code reduces access bandwidth, code size, and improves instruction cache hit rate. Another way ARM achieves cycle time reduction is by using Harvard architecture. The architecture facilitates independent data and instruction buses.
    [Show full text]
  • RISC-V Geneology
    RISC-V Geneology Tony Chen David A. Patterson Electrical Engineering and Computer Sciences University of California at Berkeley Technical Report No. UCB/EECS-2016-6 http://www.eecs.berkeley.edu/Pubs/TechRpts/2016/EECS-2016-6.html January 24, 2016 Copyright © 2016, by the author(s). All rights reserved. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission. Introduction RISC-V is an open instruction set designed along RISC principles developed originally at UC Berkeley1 and is now set to become an open industry standard under the governance of the RISC-V Foundation (www.riscv.org). Since the instruction set architecture (ISA) is unrestricted, organizations can share implementations as well as open source compilers and operating systems. Designed for use in custom systems on a chip, RISC-V consists of a base set of instructions called RV32I along with optional extensions for multiply and divide (RV32M), atomic operations (RV32A), single-precision floating point (RV32F), and double-precision floating point (RV32D). The base and these four extensions are collectively called RV32G. This report discusses the historical precedents of RV32G. We look at 18 prior instruction set architectures, chosen primarily from earlier UC Berkeley RISC architectures and major proprietary RISC instruction sets. Among the 122 instructions in RV32G: ● 6 instructions do not have precedents among the selected instruction sets, ● 98 instructions of the 116 with precedents appear in at least three different instruction sets.
    [Show full text]
  • Introduction to Cpu
    microprocessors and microcontrollers - sadri 1 INTRODUCTION TO CPU Mohammad Sadegh Sadri Session 2 Microprocessor Course Isfahan University of Technology Sep., Oct., 2010 microprocessors and microcontrollers - sadri 2 Agenda • Review of the first session • A tour of silicon world! • Basic definition of CPU • Von Neumann Architecture • Example: Basic ARM7 Architecture • A brief detailed explanation of ARM7 Architecture • Hardvard Architecture • Example: TMS320C25 DSP microprocessors and microcontrollers - sadri 3 Agenda (2) • History of CPUs • 4004 • TMS1000 • 8080 • Z80 • Am2901 • 8051 • PIC16 microprocessors and microcontrollers - sadri 4 Von Neumann Architecture • Same Memory • Program • Data • Single Bus microprocessors and microcontrollers - sadri 5 Sample : ARM7T CPU microprocessors and microcontrollers - sadri 6 Harvard Architecture • Separate memories for program and data microprocessors and microcontrollers - sadri 7 TMS320C25 DSP microprocessors and microcontrollers - sadri 8 Silicon Market Revenue Rank Rank Country of 2009/2008 Company (million Market share 2009 2008 origin changes $ USD) Intel 11 USA 32 410 -4.0% 14.1% Corporation Samsung 22 South Korea 17 496 +3.5% 7.6% Electronics Toshiba 33Semiconduc Japan 10 319 -6.9% 4.5% tors Texas 44 USA 9 617 -12.6% 4.2% Instruments STMicroelec 55 FranceItaly 8 510 -17.6% 3.7% tronics 68Qualcomm USA 6 409 -1.1% 2.8% 79Hynix South Korea 6 246 +3.7% 2.7% 812AMD USA 5 207 -4.6% 2.3% Renesas 96 Japan 5 153 -26.6% 2.2% Technology 10 7 Sony Japan 4 468 -35.7% 1.9% microprocessors and microcontrollers
    [Show full text]
  • A CAD Tool for Synthesizing Optimized Variants of Altera's Nios II Soft-Core Processor
    A CAD Tool for Synthesizing Optimized Variants of Altera's Nios II Soft-Core Processor By Omar Al Rayahi A Thesis Submitted to the Faculty of Graduate Studies through Electrical and Computer Engineering in Partial Fulfillment of the Requirements for the Degree of Master of Applied Science at the University of Windsor Windsor, Ontario, Canada 2008 Library and Bibliotheque et 1*1 Archives Canada Archives Canada Published Heritage Direction du Branch Patrimoine de I'edition 395 Wellington Street 395, rue Wellington Ottawa ON K1A0N4 Ottawa ON K1A0N4 Canada Canada Your file Votre reference ISBN: 978-0-494-47050-3 Our file Notre reference ISBN: 978-0-494-47050-3 NOTICE: AVIS: The author has granted a non­ L'auteur a accorde une licence non exclusive exclusive license allowing Library permettant a la Bibliotheque et Archives and Archives Canada to reproduce, Canada de reproduire, publier, archiver, publish, archive, preserve, conserve, sauvegarder, conserver, transmettre au public communicate to the public by par telecommunication ou par Plntemet, prefer, telecommunication or on the Internet, distribuer et vendre des theses partout dans loan, distribute and sell theses le monde, a des fins commerciales ou autres, worldwide, for commercial or non­ sur support microforme, papier, electronique commercial purposes, in microform, et/ou autres formats. paper, electronic and/or any other formats. The author retains copyright L'auteur conserve la propriete du droit d'auteur ownership and moral rights in et des droits moraux qui protege cette these. this thesis. Neither the thesis Ni la these ni des extraits substantiels de nor substantial extracts from it celle-ci ne doivent etre imprimes ou autrement may be printed or otherwise reproduits sans son autorisation.
    [Show full text]
  • Small Soft Core up Inventory ©2019 James Brakefield Opencore and Other Soft Core Processors Reverse-U16 A.T
    tool pip _uP_all_soft opencores or style / data inst repor com LUTs blk F tool MIPS clks/ KIPS ven src #src fltg max max byte adr # start last secondary web status author FPGA top file chai e note worthy comments doc SOC date LUT? # inst # folder prmary link clone size size ter ents ALUT mults ram max ver /inst inst /LUT dor code files pt Hav'd dat inst adrs mod reg year revis link n len Small soft core uP Inventory ©2019 James Brakefield Opencore and other soft core processors reverse-u16 https://github.com/programmerby/ReVerSE-U16stable A.T. Z80 8 8 cylcone-4 James Brakefield11224 4 60 ## 14.7 0.33 4.0 X Y vhdl 29 zxpoly Y yes N N 64K 64K Y 2015 SOC project using T80, HDMI generatorretro Z80 based on T80 by Daniel Wallner copyblaze https://opencores.org/project,copyblazestable Abdallah ElIbrahimi picoBlaze 8 18 kintex-7-3 James Brakefieldmissing block622 ROM6 217 ## 14.7 0.33 2.0 57.5 IX vhdl 16 cp_copyblazeY asm N 256 2K Y 2011 2016 wishbone extras sap https://opencores.org/project,sapstable Ahmed Shahein accum 8 8 kintex-7-3 James Brakefieldno LUT RAM48 or block6 RAM 200 ## 14.7 0.10 4.0 104.2 X vhdl 15 mp_struct N 16 16 Y 5 2012 2017 https://shirishkoirala.blogspot.com/2017/01/sap-1simple-as-possible-1-computer.htmlSimple as Possible Computer from Malvinohttps://www.youtube.com/watch?v=prpyEFxZCMw & Brown "Digital computer electronics" blue https://opencores.org/project,bluestable Al Williams accum 16 16 spartan-3-5 James Brakefieldremoved clock1025 constraint4 63 ## 14.7 0.67 1.0 41.1 X verilog 16 topbox web N 4K 4K N 16 2 2009
    [Show full text]
  • Design of the RISC-V Instruction Set Architecture
    Design of the RISC-V Instruction Set Architecture Andrew Waterman Electrical Engineering and Computer Sciences University of California at Berkeley Technical Report No. UCB/EECS-2016-1 http://www.eecs.berkeley.edu/Pubs/TechRpts/2016/EECS-2016-1.html January 3, 2016 Copyright © 2016, by the author(s). All rights reserved. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission. Design of the RISC-V Instruction Set Architecture by Andrew Shell Waterman A dissertation submitted in partial satisfaction of the requirements for the degree of Doctor of Philosophy in Computer Science in the Graduate Division of the University of California, Berkeley Committee in charge: Professor David Patterson, Chair Professor Krste Asanovi´c Associate Professor Per-Olof Persson Spring 2016 Design of the RISC-V Instruction Set Architecture Copyright 2016 by Andrew Shell Waterman 1 Abstract Design of the RISC-V Instruction Set Architecture by Andrew Shell Waterman Doctor of Philosophy in Computer Science University of California, Berkeley Professor David Patterson, Chair The hardware-software interface, embodied in the instruction set architecture (ISA), is arguably the most important interface in a computer system. Yet, in contrast to nearly all other interfaces in a modern computer system, all commercially popular ISAs are proprietary.
    [Show full text]
  • Renesas Technology and Hitachi Announce Development of SH-2A 32-Bit RISC CPU Core for High-Performance Embedded Sysytems
    Renesas Technology and Hitachi Announce Development of SH-2A 32-Bit RISC CPU Core for High-Performance Embedded Sysytems Approximately 3.5-fold improvement in processing performance plus improved program code efficiency and real-time capability, ideal for high-performance real-time control systems for automotive, consumer, and industrial products Tokyo, April 19, 2004 Renesas Technology Corp. and Hitachi, Ltd. (TSE:6501, NYSE:HIT) today announced the development of a 32-bit RISC (Reduced Instruction Set Computer) CPU core, dubbed the SH-2A, for use in control devices in the automotive, industrial, and consumer fields. The SH-2A is the successor of the SuperH™*1 RISC microprocessor SH-2 CPU core, and offers a major increase in performance together with improved program code efficiency. The SH-2A is designed for products requiring real-time capability, and is ideal for use in single-chip microcontrollers and SoCs (Systems on Chip) in automotive engine control systems and consumer and industrial products such as printers and AC servos. < Background > Automotive engine control has become more complex with the recent emphasis on environmental conservation and improved fuel consumption, while at the same time there is a trend toward the development of large-scale systems in short time-frames through the adoption of autocode technology*2 driven by improvements in development tools. The field of industrial products such as AC servos is also witnessing advances in system precision, while more and more consumer products such as printers are appearing in the form of multi-function systems. For example, there is a demand for faster processing providing coupled printing control while executing high-speed computational operations on image data from a DSC or scanner, and control system in these fields require microcontroller that offer high speed, high performance, and large-capacity on-chip ROM.
    [Show full text]
  • Anatomy of Memory Corruption Attacks and Mitigations In
    Anatomy of Memory Corruption Attacks and Mitigations in Embedded Systems Nektarios Georgios Tsoutsos, Student Member, IEEE, and Michail Maniatakos, Senior Member, IEEE Abstract—For more than two decades, memory safety viola- deploy additional protection mechanisms. In this article, we tions and control-flow integrity attacks have been a prominent review memory corruption threats to embedded processors and threat to the security of computer systems. Contrary to regular summarize contemporary mitigation techniques. systems that are updated regularly, application-constrained de- vices typically run monolithic firmware that may not be updated Memory Safety. In embedded system programming, memory in the lifetime of the device after being deployed in the field. corruption remains a major class of memory safety violations Hence, the need for protections against memory corruption that could enable attackers to subvert the legitimate program becomes even more prominent. In this article, we survey memory safety in the context of embedded processors, and describe behavior. Using programming languages that provide unlim- different attacks that can subvert the legitimate control flow, ited freedom on how to data are handled, such violations can with a special focus on Return Oriented Programming. Based be attributed to programmer errors or improper input validation on common attack trends, we formulate the anatomy of typical [1]. Consequently, memory safety violations comprise a broad memory corruption attacks and discuss powerful mitigation range of software problems that could enable unauthorized techniques that have been reported in the literature. access to sensitive information resources, escalate privileges, Index Terms—Memory safety violations, control-flow integrity modify the program control flow or allow execution of arbi- protections, buffer overflows, return oriented programming.
    [Show full text]
  • A VHDL Model of a Superscalar Implementation of the DLX Instruction Set Architcture
    Rochester Institute of Technology RIT Scholar Works Theses 10-1-1996 A VHDL model of a superscalar implementation of the DLX instruction set architcture Paul Ferno Follow this and additional works at: https://scholarworks.rit.edu/theses Recommended Citation Ferno, Paul, "A VHDL model of a superscalar implementation of the DLX instruction set architcture" (1996). Thesis. Rochester Institute of Technology. Accessed from This Thesis is brought to you for free and open access by RIT Scholar Works. It has been accepted for inclusion in Theses by an authorized administrator of RIT Scholar Works. For more information, please contact [email protected]. A VHDL MODEL OF A SUPERSCALAR IMPLEMENTATION OF THE DLX INSTRUCTION SET ARCHITECTURE by Paul A. Femo A thesis submitted in partial fulfillment ofthe requirements for the degree of Masters ofScience in Computer Engineering Department ofComputer Engineering College ofEngineering Rochester Institute ofTechnology Rochester, New York October, 1996 Approvedby _ Dr. Kevin Shank, Assistant Professor Dr. Tony Chang, Professor Dr. Roy Czemikowski, Dept. Head and Professor THESIS RELEASE PERMISSION FORM ROCHESTER INSTITUTE OF TECHNOLOGY COLLEGE OF ENGINEERING Title: A VHDL Model ofa Superscalar Implementation ofthe DLX Instruction Set Architecture I, Paul A. Femo, hereby grant permission to the Wallace Memorial Library to reproduce my thesis in whole or part. Signature: _ Date: I(t-?£ ii Abstract The complexity of today's microprocessors demands that designers have an extensive knowledge of superscalar design techniques; this knowledge is difficult to acquire outside of a professional design team. Presently, there are a limited number of adequate resources available for the student, both in textual and model form.
    [Show full text]