The CHI Family of Cryptographic Hash Algorithms

Total Page:16

File Type:pdf, Size:1020Kb

The CHI Family of Cryptographic Hash Algorithms Submission to the SHA-3 Competition: The CHI Family of Cryptographic Hash Algorithms Design Team: Cryptographic Hash Initiative, Qualcomm International Lead Designers: Phil Hawkes, Cameron McDonald [email protected], [email protected] Level 3, 230 Victoria Rd, Gladesville, NSW 2111, Australia October 30, 2008 Abstract This document specifies the CHI family of cryptographic hash algorithms for the SHA-3 hash function competition being sponsored by NIST. The CHI family improves on the SHA-2 family by utilizing a stronger bit-wise non-linear function and ensuring better diffusion. This reduces the number of steps required to make the hash function secure and reduces the number of addition operations required. The addition operations are the largest and most power-hungry operations of the SHA-2 family, so the CHI family offers significant reduction in both energy usage and (in the case of hardware implementations) speed /area metrics. The CHI family targets 64-bit architecture, but is efficiently implemented on smaller architectures. 1 1 Introduction This document introduces four cryptographic hash algorithms collectively known as the CHI al- gorithms. The algorithms are denoted CHI-224, CHI-256, CHI-384 and CHI-512 according to the length of the output hash. The algorithms for CHI-224 and CHI-384 are almost identical to CHI- 256 and CHI-512 respectively, differing only in the values of some constants. The basic parameters of the CHI algorithms are shown in Table 1. Features of the CHI algorithms Regarding padding and parsing messages into message blocks for submitting to the compression function, the CHI algorithm processing is identical to FIPS 180-2 [56]. The compression function is then applied iteratively to the message blocks, as with the FIPS 180-2 algorithms. In order to provide resistance to length-extension attacks, the compression function for the final message block is slightly different from the compression function for the earlier blocks. The main distinguishing feature of the CHI compression function is the MAP, a complex bit- sliced function with four inputs and three outputs. Research indicated that such a MAP function is one of the most efficient methods of maximizing non-linear effects when followed by addition operations. Since the MAP function is bit-sliced, the MAP is well suited to implementation on any platform. The remaining operations are common to most processors, making the CHI algorithms efficient across many platforms. Implementing the CHI algorithms The primary goal of the designers has been to have good overall performance on all software platforms. For CHI-224 and CHI-256, this means that the algorithms may not be as fast as their SHA-2 counterparts on 32-bit platforms, in order to improve the efficiency on 64-bit processors. CHI-384 and CHI-512, on the other hand, are faster than their SHA-2 counterparts on all platforms. In hardware, all CHI algorithms are significantly more efficient that their SHA-2 counterparts. Algorithm Output Internal State Message Block Maximum Size Size Size Message Length CHI-224 224 256 512 264 − 1 CHI-256 256 256 512 264 − 1 CHI-384 384 512 1024 2128 − 1 CHI-512 512 512 1024 2128 − 1 Table 1: Basic parameters of the CHI algorithms. All sizes are given in bits. The Cryptographic Hash Initiative (CHI) Project The CHI Project was instigated by Greg Rose, head of the Qualcomm Product Security Initiative. The CHI project was coordinated by Phil Hawkes. Phil Hawkes and Cameron McDonald led the design effort. Brian Rosenberg and Lu Xiao were major contributors to the design and design review, with notable contributions from Steve Millendorf, Craig Northway, David Jacobson, Lu Xiao and Yafei Yang. Cameron McDonald coordinated the software implementation, with assistance from Craig Brown, Craig Northway and Jessica Purser. Bijan Ansari implemented the hardware simulation. Arun Balakrishnan, Alexander Gantman, John Jozwiak, Yinian Mao, Michael Paddon, Anand Palanigounder, Aram Perez and Miriam Wiggers de Vries completed the CHI project team. 2 1.1 Organization of this Document This document is organized in the following way. The remainder of the introduction contains definitions that are used by all parts of this document. The CHI algorithms are specified in Part I. The design rationale for the CHI algorithms is provided in Part II. A discussion on the cryptanalysis of CHI algorithms follows in Part III. Part IV discusses implementation characteristics of the CHI algorithms. Part V clarifies how this submission fulfills the submission requirements, and explains why we believe the CHI algorithms rate well with respect to the evaluation criteria. Appendix A shows an example of the intermediate values for CHI-224. 1.2 Definitions 1.2.1 Glossary of Terms and Acronyms Tables 2 and 3 contain a glossary of the terms used in this document. Table 4 contains a list of the acronyms used in this document. Bias A measure of the distance of a given distribution from a uniform distribution. Bit A binary digit having a value of 0 or 1. Block A group of bits of specified length. Byte A group of eight bits. Compression Function A function that produces an output hash value by combining an input hash value and a message block. Compression Feedback Func- A function that alters the input hash value prior to combin- tion ing with the output of the step functions. Constant A value that is independent of the message being processed. Differential Cryptanalysis A form of analysis based on tracing the propagation of dif- ferences through an algorithm. Linear Approximation An XOR sum of bits from the inputs and outputs of an operation. Linear Cryptanalysis A form of analysis based on biased linear approximations to non-linear components of an algorithm. Message Block The padded message is partitioned into message blocks. The size of the message block depends on the algorithm. Message Expansion The process of expanding a message block into a sequence of step inputs. Microcontrollers Low-end processors. These are typically 8-bit processors and 16-bit, although some 32-bit processors are now considered microcontrollers. Table 2: Glossary of terms beginning with A-M used in this document 3 Nabla differential characteris- A description of the location of bit differences and the sign tic of those bit differences. Padding The process of adding bits to the input message in order to form a multiple of the required block length. Parsing The process of partitioning the padded message into message blocks for processing by the compression function. SHA-1 SHA-1 algorithm specified in [56]. SHA-2 The set of SHA-224, SHA-256, SHA-384 and SHA-512 algo- rithms specified in [56]. SHA-3 predecessors The MD5, SHA-1 and SHA-2 algorithms. Sign (of a bit difference): a positive difference \+" indicates that the bit values changes from 0 to 1, while a negative difference \-" indicates that the bit values changes from 1 to 0. Step One application of the step function. Step Constant A value that is independent of the message but which changes from one step to the next. Step Input The sequence of word64s output from the message expan- sion, that are used in the step function . Step Input Package The set of step inputs and step constants used in a single step. Step Function A set of operations used to update the working variables based on the step input package. Underlying Block Cipher The CHI algorithms use a compression function in which most of the processing takes place in an underlying block cipher. Word32 A group of 32 bits (4 bytes). Word64 A group of 64 bits (8 bytes). Working Variables A set of variables whose values are updated by the step function. XOR differential A description of the location of bit differences. Table 3: Glossary of terms beginning with N-Z used in this document 4 AES Advanced Encryption Standard ALU Arithmetic Logical Unit ANF Algebraic Normal Form ASIC Application Specific Integrated Circuit CHI Cryptographic Hash Initiative (both the name of the development team and the name of the submission algorithm) DES Data Encryption Standard DSP Digital Signal Processor FPGA Field Programmable Gate Array HMAC Keyed-Hash Message Authentication Code LAB Linear Approximation Bias LSB Least Significant Bit MAC Message Authentication Code MSB Most Significant Bit NIST National Institute of Standards and Technology NDP Nabla Differential Probability PRF Pseudo-Random Function SHA Secure Hash Algorithm SIMD Single Instruction Multiple Data (a type of co-processor) XDP XOR-Differential Probability Table 4: List of acronyms used in this document 1.2.2 Symbols The uses of the \=" symbol in this document are defined in Table 5. Symbols that do not denote transformations on bit-strings are defined in Table 6. Symbols denoting transformations on bit- strings used in this document are defined in Table 7. Symbol Meaning = The expressions on both sides of the symbol can be consid- ered equivalent. := The variable on the left of the symbol is defined to be the resulting value of the expression to the right. == Returns TRUE if the evaluation of both sides are identical, and returns FALSE otherwise. Table 5: Uses of the \=" symbol in this document. 5 Symbol Meaning x[i] The i-th least significant bit of the bit string x jxj The number of non-zero bits in the bit string x (Hamming weight) P r(Event 1jEvent 2) The probability of Event 1 occurring given that 2 has oc- curred Table 6: Other symbols in this document. Symbol Meaning Operand Bit Length ^ Bitwise AND operation Any _ Bitwise OR (\inclusive-OR") operation Any ⊕ Bitwise XOR (\exclusive-OR") operation Any
Recommended publications
  • Escuela Politécnica Superior De Jaén
    UNIVERSIDAD DE JAÉN ESCUELA POLITÉCNICA SUPERIOR DE JAÉN Trabajo Fin de Grado DATALOGGER CON ENLACE BLUETOOTH A SISTEMA ANDROID Alumno: Juan Miguel Bejarano Bueno Tutor: Prof. D. Luis Miguel Nieto Nieto Dpto: Ingeniería Electrónica y Automática Escuela Politécnica Superior Jaén de Area: Tecnología Electrónica Septiembre, 2015 Juan Miguel Bejarano Bueno Datalogger con enlace Bluetooth a aplicación Android. Universidad de Jaén Escuela Politécnica Superior de Jaén Departamento de Electrónica y Automática Don LUIS MIGUEL NIETO NIETO, tutor del Trabajo Fin de Grado titulado: DATALOGGER CON ENLACE BLUETOOTH A ANDROID, que presenta JUAN MIGUEL BEJARANO BUENO, autoriza su presentación para defensa y evaluación en la Escuela Politécnica Superior de Jaén. Jaén, SEPTIEMBRE de 2015 El alumno: El tutor: JUAN MIGUEL BEJARANO BUENO LUIS MIGUEL NIETO NIETO 1 Escuela Politécnica Superior de Jaén Juan Miguel Bejarano Bueno Datalogger con enlace Bluetooth a aplicación Android. RESUMEN Este Trabajo de Fin de Grado consiste en el desarrollo de dos sistemas. En primer lugar, se dispondrá de un sistema de registro de datos por eventos o datalogger. El sistema está basado en un microcontrolador Microchip y dispondrá de una interfaz de comunicaciones Bluetooth. Este dispositivo será capaz de realizar mediciones con una duración mínima configurable. En segundo lugar y de manera simultánea, se ha diseñado una aplicación Android capaz de gestionar la comunicación con el dispositivo de una manera gráfica. El sistema se ha diseñado siempre teniendo en cuenta el ahorro económico, dispondrá de una alimentación autónoma y el mantenimiento será prácticamente nulo. Se pretende así obtener un datalogger funcional, económico e intuitivo para el manejo del mismo por cualquier tipo de usuario.
    [Show full text]
  • Downloaded to the Test Chip Verified
    - -------------------------------------------------------------------------------- - -------------------------------------------------------------------------------- SECURITIES AND EXCHANGE COMMISSION WASHINGTON, D.C. 20549 ------------------------ FORM 10-K ANNUAL REPORT PURSUANT TO SECTION 13 OR 15(D) OF THE SECURITIES EXCHANGE ACT OF 1934 FOR THE FISCAL YEAR ENDED DECEMBER 31, 1997 COMMISSION FILE NUMBER 0-23006 ------------------------ DSP GROUP, INC. (Exact name of registrant as specified in its charter) DELAWARE 94-2683643 (State or other jurisdiction of (I.R.S. Employer Identification No.) incorporation and organization) 3120 SCOTT BOULEVARD, SANTA CLARA, CA 95054 (Address of principal executive offices, including zip code) (408) 986-4300 (Registrant's telephone number) Securities registered pursuant to Section 12(b) of the Act: NONE Securities registered pursuant to Section 12(g) of the Act: COMMON STOCK, $.001 PER SHARE (Title of class) Indicate by check mark whether the Registrant: (1) has filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that the Registrant was required to file such reports), and (2) has been subject to such filing requirements for the past 90 days. Yes /X/ No / / Indicate by check mark if disclosure of delinquent filers pursuant to Item 405 of Regulation S-K is not contained herein, and will not be contained, to the best of Registrant's knowledge, in definitive proxy or information statements incorporated by reference in Part III of this Form 10-K or any amendment to this Form 10-K. [ ] The aggregate market value of the voting stock held by non-affiliates of the Registrant, based on the closing price of the Common Stock on March 2, 1998, as reported on the Nasdaq National Market, was approximately $231,228,988.
    [Show full text]
  • Nexus Based Multi-Core Debug
    Nexus Based Multi-Core Debug Dr. Neal Stollon MIPS Technologies / First Silicon Solutions [email protected] Rich Collins Freescale Semiconductor [email protected] Impact of Debug Strategy Copyright © 2003 Novas Software, Inc. Yes! but. half of what??? Copyright © 2003 Novas Software, Inc. Prototype silicon to production Debug cost can get even bigger for new sets release is 6-9 months. of debug problems for multi-core designs Much of cost of debug driven by architecture limitations and debug learning curve But what if SoC internals are more visible, accessible? Debug implementations become standardized ? SoC Debug Evolution ICE BDM JTAG Embedded Multi-Core Embedded (Scan, BIST Processor / System Debug Run Control) Logic Trace 50K Platform SoC (Multi-Core) 20K SoC Debug- (RISC+IP Nexus +RAM) Difficulty 8K ASICS System FPGA Domain (gates/pins) (PLD+RISC IP) Embedded 2.5K Systems Single FPGAs 1K processor 1980s 1990s 2000s The New Frontier Embedded Debug Complexity keeps increasing • Gates increase geometrically - Pins increase linearly • Significant debug difficulties for leading architectures • More complex debug needs better Instrumentation What is Nexus? • Nexus is a standard for industry level instrumentation with real time interface for embedded system debug • “Nexus” is synonymous with the IEEE-ISTO 5001 std. • Supported by over 20 Member Companies • Specification freely available at http://www.nexus5001.org • Nexus is a toolbox of defined ways for processor debug: • Defines JTAG and Auxiliary bus debug interfaces • Defines simple
    [Show full text]
  • Gnu Assembler
    Using as The gnu Assembler (Sourcery G++ Lite 2010q1-188) Version 2.19.51 The Free Software Foundation Inc. thanks The Nice Computer Company of Australia for loaning Dean Elsner to write the first (Vax) version of as for Project gnu. The proprietors, management and staff of TNCCA thank FSF for distracting the boss while they gotsome work done. Dean Elsner, Jay Fenlason & friends Using as Edited by Cygnus Support Copyright c 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled \GNU Free Documentation License". i Table of Contents 1 Overview :::::::::::::::::::::::::::::::::::::::: 1 1.1 Structure of this Manual :::::::::::::::::::::::::::::::::::::: 14 1.2 The GNU Assembler :::::::::::::::::::::::::::::::::::::::::: 15 1.3 Object File Formats::::::::::::::::::::::::::::::::::::::::::: 15 1.4 Command Line ::::::::::::::::::::::::::::::::::::::::::::::: 15 1.5 Input Files :::::::::::::::::::::::::::::::::::::::::::::::::::: 16 1.6 Output (Object) File:::::::::::::::::::::::::::::::::::::::::: 16 1.7 Error and Warning Messages :::::::::::::::::::::::::::::::::: 16 2 Command-Line Options::::::::::::::::::::::: 19 2.1 Enable Listings: `-a[cdghlns]'
    [Show full text]
  • Gcc Installation Instruction Release 12.0.1 (Experimental 20210414)
    Gcc Installation Instruction Release 12.0.1 (experimental 20210414) GCC Developer Community Aug 27, 2021 CONTENTS 1 Copyright 3 2 Installing GCC 5 3 Prerequisites 7 3.1 Tools/packages necessary for building GCC ............................... 7 3.2 Tools/packages necessary for modifying GCC .............................. 9 4 Downloading GCC 11 5 Configuration 13 5.1 Distributor options ............................................ 14 5.2 Host, Build and Target specification ................................... 14 5.3 Options specification ........................................... 15 5.4 Cross-Compiler-Specific Options ..................................... 33 5.5 Objective-C-Specific Options ....................................... 35 5.6 D-Specific Options ............................................ 36 6 Building 37 6.1 Building a native compiler ........................................ 37 6.2 Building a cross compiler ......................................... 39 6.3 Building in parallel ............................................ 40 6.4 Building the Ada compiler ........................................ 40 6.5 Building with profile feedback ...................................... 41 7 Testing 43 7.1 How can you run the testsuite on selected tests? ............................. 43 7.2 Passing options and running multiple testsuites .............................. 44 7.3 How to interpret test results ........................................ 45 7.4 Submitting test results .......................................... 45 8 Final installation 47
    [Show full text]
  • Pwny Documentation Release 0.9.0
    pwny Documentation Release 0.9.0 Author Jan 29, 2018 Contents 1 pwny package 3 2 pwnypack package 5 2.1 asm – (Dis)assembler..........................................5 2.2 bytecode – Python bytecode manipulation..............................7 2.3 codec – Data transformation...................................... 11 2.4 elf – ELF file parsing.......................................... 16 2.5 flow – Communication......................................... 36 2.6 fmtstring – Format strings...................................... 41 2.7 marshal – Python marshal loader................................... 42 2.8 oracle – Padding oracle attacks.................................... 43 2.9 packing – Data (un)packing...................................... 44 2.10 php – PHP related functions....................................... 46 2.11 pickle – Pickle tools.......................................... 47 2.12 py_internals – Python internals.................................. 49 2.13 rop – ROP gadgets........................................... 50 2.14 shellcode – Shellcode generator................................... 50 2.15 target – Target definition....................................... 79 2.16 util – Utility functions......................................... 80 3 Indices and tables 83 Python Module Index 85 i ii pwny Documentation, Release 0.9.0 pwnypack is the official CTF toolkit of Certified Edible Dinosaurs. It aims to provide a set of command line utilities and a python library that are useful when playing hacking CTFs. The core functionality of pwnypack
    [Show full text]
  • Rapidly Developing Embedded Systems Using Configurable Processors
    Class 413 Rapidly Developing Embedded Systems Using Configurable Processors Steven Knapp ([email protected]) Triscend Corporation www.triscend.com (Booth 160) © Copyright 1998-99, Triscend Corporation. All rights reserved. Agenda • What is a Configurable Processor? • Configurable Processors architectures • Building custom peripherals • Hardware/software trade-offs, algorithmic acceleration • Comparing the alternatives • Configurable Processor technical challenges – Communication – Software development environment – Debugging • Summary Terminology Used in this Session • Configurable Processor – Embedded processor core – Programmable logic to build peripherals – Dedicated System Bus – On-chip memory • User-Definable Processor – Parameterized or changeable processor hardware description – Typically synthesizable from VHDL/Verilog – Usually targeted to ASIC or system-on-a-chip – Examples: ARC, Tensilica, etc. Trends Toward the Configurable Processor • Decreasing Time-to-Market – Fast iterations – Fast in-system, real-time debugging – Fast component availability • More Adaptability – During design and debug – In the field or in the application • Higher Performance – Match the architecture to the problem – Fast response to real-time events – Parallel operations • Increased Differentiation • Ever-improving Process Technology Toward a Configurable Processor "System on a Configurable Chip" Processors MCU ASIC Derivative Configurable FLASH Processor EPROM/ MCU Derivatives and Programmable Logic RAM Discrete Solutions MCU Derivative EPROM/ RAM
    [Show full text]
  • Architectural Trade-Offs in Dynamically Reconfigurable Processors
    Research Collection Doctoral Thesis Architectural trade-offs in dynamically reconfigurable processors Author(s): Enzler, Rolf Publication Date: 2004 Permanent Link: https://doi.org/10.3929/ethz-a-004717340 Rights / License: In Copyright - Non-Commercial Use Permitted This page was generated automatically upon download from the ETH Zurich Research Collection. For more information please consult the Terms of use. ETH Library Diss. ETH No. Architectural Trade-offs in Dynamically Reconfigurable Processors A dissertation submitted to the Swiss Federal Institute of Technology Zurich for the degree of Doctor of Technical Sciences presented by Rolf Enzler Dipl. El.-Ing. ETH born September citizen of Walchwil ZG accepted on the recommendation of Prof. Dr. Gerhard Tr¨oster,examiner PD Dr. Marco Platzner, co-examiner To Susana iv Acknowledgments I am grateful to my advisor, Prof. Dr. Gerhard Tr¨oster, for his support and for providing me with extraordinary research facilities. Special thanks belong to Christian Plessl and Dr. Marco Platzner for the uncountable hours of fruitful discussions and joint work within the research project ZIPPY. Further, I want to thank Marco for co- examining this thesis and for providing his valuable input. I would like to thank Dr. Hubert Kaeslin and Francisco Camarero of the Microelectronics Design Center at ETH Zurich for their technological advice and the support with the Synopsys synthesis tools. I am very much obliged to the members of the Electronics Laboratory and the Computer Engineering and Networks Laboratory – way too many to name all of them personally – for the pleasant and inspiring research atmosphere. Special thanks go to Didier Cottet who always had an open ear for my diverse requests.
    [Show full text]
  • Microcontrollers and Modern Control Methods
    2nd WSEAS Int. Conf on COMPUTER ENGINEERING and APPLICATIONS (CEA'08) Acapulco, Mexico, January 25-27, 2008 Microcontrollers and Modern Control Methods VLADIMÍR VAŠEK, PETR DOSTÁLEK, JAN DOLINAY, DAGMAR JANÁČOVÁ, KAREL KOLOMAZNÍK Department of Automatic Control Faculty of Applied Informatics, Tomas Bata University in Zlin Mostní 5139, 760 01 Zlín CZECH REPUBLIC [email protected], http://web.fai.utb.cz Abstract: - The aim of this paper is to present overview of the microcontrollers which are usable for the controllers based on the modern control algorithms. In this paper are described necessities of the self tuning controllers. In our applications, we are focused to the microcontrollers Motorola and National Semiconductor that are commonly used for process control. Microcontrollers were divided into two categories: 8-bit and 16-bit. In the part of the work dedicated to 8-bit microcontrollers, the properties of M68HC08 (Motorola) and COP8 (National Semiconductor) are described. The part, which deals with 16-bit microcontrollers, contains description of M68HC16 (Motorola) and CR16 (National Semiconductor). Finally has been evaluated CPU performance of selected microcontrollers in clock cycles needed for factorial computation. Key-Words: - Microcontroller, CPU performance, 68HC08, 68HC12, COP8, CR16, adaptive - self tuning control. 1 Introduction microcontrollers is their great flexibility in many Microcontrollers today assert in all regions of human applications. This universality is secured by possibility activities – beginning with applications in consumer to program inner or outer program memory according electronics to complicated decentralized control to requirements of given application. Software systems, where they form particular structural equipment for 8-bit microcomputers is in most cases members of the whole system.
    [Show full text]
  • Installing GCC
    Installing GCC For gcc version 4.7.3 (GNU Tools for ARM Embedded Processors) Copyright c 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, the Front-Cover texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the license is included in the section entitled \GNU Free Documentation License". (a) The FSF's Front-Cover Text is: A GNU Manual (b) The FSF's Back-Cover Text is: You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development. i Table of Contents 1 Installing GCC:::::::::::::::::::::::::::::::::: 1 2 Prerequisites :::::::::::::::::::::::::::::::::::: 3 3 Downloading GCC:::::::::::::::::::::::::::::: 9 4 Installing GCC: Configuration ::::::::::::::: 11 5 Building :::::::::::::::::::::::::::::::::::::::: 37 5.1 Building a native compiler :::::::::::::::::::::::::::::::::::: 37 5.2 Building a cross compiler:::::::::::::::::::::::::::::::::::::: 40 5.3 Building in parallel:::::::::::::::::::::::::::::::::::::::::::: 41 5.4 Building the Ada compiler :::::::::::::::::::::::::::::::::::: 41 5.5 Building with profile feedback ::::::::::::::::::::::::::::::::: 41 6 Installing GCC: Testing:::::::::::::::::::::::
    [Show full text]
  • RISC-V • 1980S: RISC • Case for Open Isas • 1990S: VLIW • Tour of RISC-V ISA • 2000S: NUMA Vs
    Past and Future Trends in Architecture and Hardware David Paerson [email protected] SOSP History Day October 3, 2015 1 Outline Part I - Past Part II – Future 50 years of Computer HW Technology Architecture History: • End of Moore’s Law • 1960s: • Flash vs. Disks Computer Families / • Fast DRAM Microprogramming • Crosspoint NVRAM • 1970s: CISC Open ISA & RISC-V • 1980s: RISC • Case for Open ISAs • 1990s: VLIW • Tour of RISC-V ISA • 2000s: NUMA vs. • RISC-V Software Stack Clusters • RISC-V Chips 2 IBM Compatibility Problem in early 1960s By early 1960’s, IBM had 4 incompatible lines of computers! 701 → 7094 650 → 7074 702 → 7080 1401 → 7010 Each system had its own • Instruction set • I/O system and Secondary Storage: magnetic tapes, drums and disks • Assemblers, compilers, libraries,... • Market niche: business, scientific, real time, ... ⇒ IBM System/360 – one ISA to rule them all 3 IBM 360: A Computer Family Model 30 . Model 70 Storage 8K - 64 KB 256K - 512 KB Datapath 8-bit 64-bit Circuit Delay 30 nsec/level 5 nsec/level Registers Main Store Transistor Registers The IBM 360 is why bytes are 8-bits long today! IBM 360 instrucon set architecture (ISA) completely hid the underlying technological differences between various models. Milestone: The first true ISA designed as portable hardware- soKware interface! With minor modifica>ons it s>ll survives today! 4 IBM System/360 Reference Card (“Green card”) OR (cl OC m' FLOA~NEP~INTFEATURE 'INSTRUCTIONS' Sy~t8m/~~ PaGk PAW F2 I%- Dinn4b#) RDD 86 AddN~allted,ExtenddJc.x) . , AXR 36 , RR
    [Show full text]
  • Great Microprocessors of the Past and Present Editor's Note: John's Remote Copy May Be More Up-To-Date
    Great Microprocessors of the Past and Present Editor's Note: John's Remote Copy may be more up-to-date. Great Microprocessors of the Past and Present (V 11.7.0) last major update: February 2000 last minor update: February 2000 Feel free to send me comments at (new email address): [email protected] Laugh at my own amateur attempt at designing a processor architecture at: http://www.cs.uregina.ca/~bayko/design/design.html Introduction: What's a "Great CPU"? This list is not intended to be an exhaustive compilation of microprocessors, but rather a description of designs that are either unique (such as the RCA 1802, Acorn ARM, or INMOS Transputer), or representative designs typical of the period (such as the 6502 or 8080, 68000, and R2000). Not necessarily the first of their kind, or the best. A microprocessor generally means a CPU on a single silicon chip, but exceptions have been made (and are documented) when the CPU includes particularly interesting design ideas, and is generally the result of the microprocessor design philosophy. However, towards the more modern designs, design from other fields overlap, and this criterion becomes rather fuzzy. In addition, parts that used to be separate (FPU, MMU) are now usually considered part of the CPU design. Another note on terminology - because of the muddling of the term "RISC" by marketroids, I've avoided using those terms here to refer to architectures. And anyway, there are in fact four architecture families, not two. So I use "memory-data" and "load-store" to refer to CISC and RISC architectures.
    [Show full text]