Workshop on Computer Architecture Education Sunday, June 5, 2005

Total Page:16

File Type:pdf, Size:1020Kb

Workshop on Computer Architecture Education Sunday, June 5, 2005 Workshop on Computer Architecture Education Sunday, June 5, 2005 Program Committee Additional Reviewers Ed Gehringer, North Carolina State U. Jeff Jackson, Univ. of Alabama Kenny Ricks, Univ. of Alabama William Stapleton, Univ. of Alabama Jim Conrad, UNC–Charlotte Session 1. Welcome and Keynote, 8:30–9:35 8:30 Welcome, Edward F. Gehringer, workshop organizer & Kenny Ricks, organizer of special session 8:35 Keynote, “Embedded computer architectures in the MPSoC age,” Wayne Wolf, Princeton Univ .... 2 Session 2. Special Session on Embedded Systems 1, 9:35–10:30 Introduction to Special Session, Kenneth Ricks ................................................................................. 5 9:35 “Embedded systems courses at RIT,” Roy S. Czernikowski and James R. Vallino, Rochester Institute of Technology ....................................................................................................................... 6 10:00 “Experiences with the Blackfin architecture for embedded systems education,” Diana Franklin and John Seng, California Polytechnic State University – San Luis Obispo ........................................... 13 10:15 Discussion Break 10:30–11:00 Session 3. Panel on Teaching Embedded Systems 11:00–12:30 Alex Dean, North Carolina State University Yann-Hang Lee, Arizona State University Kenneth Ricks, University of Alabama Wayne Wolf, Princeton University Lunch 12:30–1:45 Session 4. Regular Papers 1:45–3:30 1:45 “SPIMbot: An engaging, problem-based approach to teaching assembly language programming,” Craig Zilles, University of Illinois .................................................................................................... 20 2:10 “QUILT: A GUI-based integrated circuit floorplanning enviroment for computer architecture research and education,” Gregory J. Briggs, Edwin J. Tan, Nicholas A. Nelson, University of Rochester, and David H. Albonesi, Cornell University..................................................................... 26 2:30 “The ‘Little Man Storage’ model,” Larry Brumbaugh and William Yurcik, National Center for Supercomputing Applications, University of Illinois ........................................................................ 32 2:50 “An emulated computer with assembler for teaching undergraduate computer architecture.” Timothy D. Stanley and Mu Wang, Brigham Young University – Hawaii ...................................... 38 3:10 Discussion Break 3:30–4:00 Session 5. Special Session on Embedded Systems 1I 4:00–5:15 4:00 “An embedded systems course and course sequence,” Kenneth G. Ricks, William A. Stapleton, and D. Jeff Jackson, University of Alabama ..................................................................................... 46 4:25 “Hardware/software co-design of embedded real-time systems from an undergraduate perspective,” Kevin C. Kassner, Dynetics Corp. and Kenneth G. Ricks, University of Alabama .... 53 4:45 “Teaching microprocessor systems desing using a SoC and embedded Linux platform,” Yann- Hang Lee and Aung Oo, Arizona State University ........................................................................... 60 5:00 Discussion Embedded Computer Architectures in the MPSoC Age Wayne Wolf Dept. of Electrical Engineering Princeton University [email protected] 1. Introduction Systems-on-chips are generally adapted to the application to meet performance, power, and cost Embedded computers are no longer used as goals. Although modern VLSI fabrication technology simple controllers. Instead, high-performance provides us with very large chips, applications keep embedded processors perform complex algorithms and getting larger. Some markets are large enough that are linked together to form multiprocessors. Embedded specialized architectures are inevitable and desirable. computing provides students different take on Multiprocessor systems-on-chips try to balance computer system design because of the requirements specialization and programmability. Programmable imposed on these systems: processors allow the SoC to be programmed after fabrication; MPSoCs are often referred to as platforms • Embedded computing systems generally require because they allow for many implementations of a real-time performance. Real-time and average- given type of system. Programmability offers many time performance are very different animals. advantages: the same chip can be used in several • Battery-powered embedded systems must meet products, reducing product cost; design tasks can be very stringent energy requirements [Aus04]. compartmentalized; and the platform chip may have a • Although the software in embedded systems can longer shelf life than a highly specialized SoC. be changed to optimize the overall system, the Because these are systems-on-chips, they generally software must also meet the specifications of the aren’t traditional symmetric multiprocessors. They may application. use hardwired function units in addition to As such, an architecturally-oriented embedded programmable processors. They may use several systems class emphasizes somewhat different concepts different instruction sets. They may have non-uniform than a traditional, general-purpose computer architect- memory spaces supported by asymmetric networks. ure class. An embedded computing architecture class Many multiprocessor systems-on-chips are must use a methodology to help students quickly get now available for several types of applications: their hands around an unfamiliar application. They • Mobile multimedia requires both high must explore a broad range of architectures. They performance and low energy consumption. should also explore trade-offs between architectural The ST Nomadik and TI OMAP architectures modifications and software modifications to meet are MPSoCs that provide specialized architec- system goals. tures for audio, video, and communications. Distributed embedded systems, which are built • Home multimedia is not as tightly constrained from networks of embedded processors, are also on power as mobile multimedia but requires widely deployed. This paper will concentrate, however, very high performance for applications like on systems-on-chips. HDTV. The Philips Nexperia architecture is a well-known MPSoC for set-top box applica- 1. Multiprocessor Systems-on-Chips tions. • Networking requires very high performance Multiprocessor systems-on-chips (MPSoCs) and provides some opportunities for [Jer04] are, first of all, systems-on-chips. They specialized parallelism. Network processors implement complete applications on a single chip. from Intel, Cisco, and others use hetero- (Although as Rich Page points out, most systems-on- geneous architectures to process packets at chips are marketing single-chip solutions---they use high rates. one chip plus all the other chips that you need to make the SoC work.) MPSoCs are systems-on-chips that include one or more programmable processors. Page 2 Workshop on Computer Architecture Education June 5, 2005 3. Architectural Challenges • Networking, either through Internet or specialized protocols. Embedded computing and MPSoCs make for a full • Digital rights management. employment act for computer architects. We are in no • File systems that are compatible with PC file danger of running out of applications that can make use systems. of large amounts of computing power and that can This wide range of functions arguably calls for a support the design effort required to create an efficient general-purpose processor; on the other hand, some of application-specific platform. Several specific these functions may call for application-specific challenges flow out of our continuing need to design hardware to meet performance/power goals. We do not MPSoCs. yet fully understand the architectural implications of Configurable processors, such as those provided the networked consumer device. by Tensilica, allow the SoC designer a convenient way Overall, methodology is an important aspect of of quickly building processors with customized embedded system design that does not often come into instruction sets. One area in which designers need help play in general-purpose systems [Wol00]. Because is figuring out which instruction set extensions should embedded system designers need to design many actually be implemented. Another important goal is systems and do so in a predictable amount of time with figuring out how to connecting configurable processors a predictable number of people, they need to develop into multiprocessor networks. methodologies that allow them to repeatably make Hardware/software co-design [DeM01] is another reasonable decisions in new design domains. Giving way to increase system performance for a particular students an insight into the design process can be as application. Accelerators, when properly designed, can important as showing them specific design outcomes. significantly and efficiently increase performance. However, the application must be carefully analyzed to 4. Benchmarks be sure that an accelerator actually improves overall performance. Benchmarks are at least important in embedded Heterogeneous multiprocessors for embedded computing as they are in general-purpose computing. applications generally implement pipelines of When you are designing an application-specific processes. Our own smart camera system [Oze05] is an system, the wrong choice of a benchmark program or example of a pipelineable application. The smart input data for that program can lead to fatal camera processes video in real time, using a number of misjudgments. distinct
Recommended publications
  • Computer Organization
    IT 110 Computer Organization From Week #1 to Week#7 IT 110 Page 1 Introduction: Why study computer organization? To be a professional in any field of computing today, one should not regard the computer as just a black box that executes programs by magic. All students of computing should acquire some understanding and appreciation of a computer system’s functional components, their characteristics, their performance, and their interactions… in order to structure a program so that it runs more efficiently on a real machine… [and] understand the tradeoff among various components such as CPU clock speed vs. memory size. What is a system? A system is a collection of components linked together and organized in such a way as to be recognizable as a single unit. What is an architecture? The fundamental properties, and the patterns of relationships, connections, constraints, and linkages among the components and between the system and its environment are known collectively as the architecture of the system. IT 110 Page 2 Elements of an information system architecture o Hardware o Software o Data o People o Networks Models for computation IT 110 Page 3 Models for computation o Abstraction of hardware as a programming language o Input/output o Arithmetic, logic, and assignment o Selection, conditional branching (if-then-else, if-goto) o Looping, unconditional branching (while, for, repeat-until, goto) Summary o Studying computer organization is important for any technology professional. o Information systems consist of components and links between them (hardware, software, data, people, networks). o Information systems can be viewed at varying levels of detail and abstraction.
    [Show full text]
  • Development of Atmega 328P Micro-Controller Emulator for Educational Purposes
    Acta Univ. Sapientiae Informatica 12, 2 (2020) 159{182 DOI: 10.2478/ausi-2020-0010 Development of ATmega 328P micro-controller emulator for educational purposes Michal SIPOˇ Sˇ Slavom´ır SIMOˇ NˇAK´ IBM Slovakia, Ltd., branch office Koˇsice Technical University of Koˇsice Aupark Tower, Protifaˇsistick´ych Koˇsice,Slovak Republic bojovn´ıkov 11, Koˇsice, Slovak Republic email: [email protected] email: [email protected] Abstract. The paper presents some of our recent results in the field of computer emulation for supporting and enhancing the educational pro- cesses. The ATmega 328P micro-controller emulator has been developed as a set of emuStudio emulation platform extension modules (plug-ins). The platform is used at the Department of Computers and Informatics as a studying and teaching support tool. Within the Assembler course, currently, the Intel 8080 architecture and language is briefly described as a preliminary preparation material for the study of Intel x86 architecture, and the Intel 8080 emuStudio emulator module is used here. The aim of this work is to explore the possibility to enrich the course by introducing a more up-to-date and relevant technology and the ATmega is the heart of Arduino { a popular hardware and software prototyping platform. We consider the options to make the process of studying the assembly lan- guage principles more attractive for students and using the ATmega AVR architecture, which is broadly deployed in embedded systems, seems to be one of them. Computing Classification System 1998: K.3.2, C.1.0 Mathematics Subject Classification 2010: 68U20, 68M01 Key words and phrases: emuStudio, emulation, Atmega, Arduino 159 160 M.
    [Show full text]
  • An Interactive Web-Based Simulation of a General Computer Architecture
    An Interactive Web-Based Simulation of a General Computer Architecture William Yurcik*, Joaquin Vila, and Larry Brumbaugh Abstract This paper describes a web-based simulation mailbox has a unique address and the content of each based on a conceptual paradigm used to introduce computer mailbox is not the same as the address. The calculator can architecture and assembly language programming to be used to enter and temporarily store numbers and to add undergraduate students. An application has been developed and subtract. The two-digit location counter is used to using Java and made available on the web increment the count each time the Little Man executes an (http://138.87.169.30/LMC/). We show how the web-based application is used to teach basic programming concepts. In instruction. The reset for the location counter is located addition, experience has been that interactive use of these outside of the mailroom. Finally there is the “Little Man” simulations enable student-centered learning of more complex himself, depicted as a cartoon character, who performs tasks issues such as addressing modes and operating system concepts. within the walled mailroom. Other than the reset switch for By visualizing all parts of the computer architecture the location counter, the only communication a user has with simultaneously during the execution of the program, this the Little Man is via slips of paper with three-digit numbers application facilitates the comprehension of the von Neumann put into the input basket or retrieved from the output basket. architecture and its relationship to assembly language. Examples of programs, system development trade-offs, and a FIGURE I description of the user interface are presented.
    [Show full text]
  • A Level Computer Science Revision Pack 01 – Computer Systems
    A Level Computer Science Revision Pack 01 – Computer Systems The mark scheme for each paper follows the questions Included (in order of appearance) 2019 2018 2017 How to revise Computer Science Practice questions from past papers are one of the best methods of revising topics from the course. This approach, accompanied by creating notes and reading the course textbook as a source for information, has proven successful for many of our previous students. How to revise a particular topic this is generic and by no means a one size fits all approach 1. On a single sheet of A4, write down everything you currently know about the topic. Do this prior to reading the course textbook or seeking help from previous notes. 2. Now consult course textbook for the topic and add to this sheet, anything you did not know that is necessary – once complete, highlight these points – these are the areas you need to learn. 3. Locate questions based around this topic in the past paper pack and attempt to answer them. 4. Confirm with the mark scheme as to your success in answering the question. The end goal of this approach would be that you are comfortably able to produce a piece of A4 for each topic of the course and then apply this information to the past paper questions. Obtaining feedback for answers The students who succeed the best in computer science are those who seek constant feedback from teachers, not just in the scope of a lesson. Any work you produce out of lesson such as past paper question answers or programming challenges, you should want to seek feedback for.
    [Show full text]
  • COMPUTER SCIENCE Quo Esequos Doloreictus Et Mo Volores Am, Conse La Suntum Et Voloribus
    Brighter Thinking Main intro back cover copy text here Rum- Level A quo esequos doloreictus et mo volores am, conse la suntum et voloribus. COMPUTER SCIENCE COMPUTER COMPUTER SCIENCE Cerrore voloreriate pa prae es vendipitia diatia necusam ditia aut perrovitam aut A/AS Level for OCR eum et im ius dolut exceris et pro maxi- mintum num quatur aut et landese qua- Teacher’s Resource Component 1 tem. Sedit et am, eum quiassus ius con Christine Swan and Ilia Avroutine additional back cover copy text here Rum- quo esequos doloreictus et mo volores am, conse la suntum et voloribus. Cerrore voloreriate pa prae es vendipitia diatia necusam ditia aut perrovitam aut eum et im ius dolut exceris et pro maxi- mintum num quatur aut et landese qua- tem. Sedit et am, eum quiassus ius con none eris ne nobis expliquis dolori ne cus, occaest, nam que exped quuntiatur atur reprori odi volores tiunto doluptaquis University Printing House, Cambridge CB2 8BS, United Kingdom Cambridge University Press is part of the University of Cambridge. It furthers the University’s mission by disseminating knowledge in the pursuit of education, learning and research at the highest international levels of excellence. www.cambridge.org Information on this title: www.cambridge.org/ukschools/9781107496774 (Cambridge Elevate-enhanced Edition) © Cambridge University Press 2015 This publication is in copyright. Subject to statutory exception and to the provisions of relevant collective licensing agreements, no reproduction of any part may take place without the written permission of Cambridge University Press. First published 2015 A catalogue record for this publication is available from the British Library ISBN 978-1-107-49677-4 Cambridge Elevate-enhanced Edition Additional resources for this publication at www.cambridge.org/ukschools Cambridge University Press has no responsibility for the persistence or accuracy of URLs for external or third-party internet websites referred to in this publication, and does not guarantee that any content on such websites is, or will remain, accurate or appropriate.
    [Show full text]
  • The CPU and Memory
    The defining component of any computer sys- tem is the central processing unit, or CPU. The design and architecture of the CPU deter- mine what instructions are available for pro- gramming it, how fast it will be able to run, and how data are organized and addressed. The CPU receives data and instructions from memory, performs arithmetic or logical opera- tions on the data, and returns the data to memory. The CPU can perform billions of such operations every second. Even though each op- eration is relatively simple, the CPU can per- form complex actions very quickly by Figure 3-1 combining those relatively simple operations. John von Neumann Los Alamos The first commercially available CPU, that of National Laboratory the UNIVAC I computer delivered to the Census Bureau in 1951,was about 14 feet long, about eight feet wide, and over eight feet tall. By 1970, the progress of Moore’s Law reduced the CPUs of some computers to a single circuit board. In 1971, Intel introduced the first CPU on a chip, intended for use in electronic calculators and incorporating about 2,250 transistors. Modern CPU chips have tens of billions of transistors. In the late 20th century, chips with multiple pro- cessing units were introduced. When a chip has more than one processing unit, the processing units are called cores. Also in the late 20th century, supporting circuitry like memory and bus control- lers began to be added to CPU chips. These evolved to become systems on a chip (SOCs). Today, CPU chips with external supporting circuitry are used where performance is the major factor, such as in servers and workstation com- puters.
    [Show full text]
  • Framework and Tools for Undergraduates Designing RISC-V Processors on an FPGA in Computer Architecture Education
    Framework and Tools for Undergraduates Designing RISC-V Processors on an FPGA in Computer Architecture Education Peter Jamieson, Tyler McGrew, and Eric Schonauer Electrical and Computer Engineering Miami University [email protected] Abstract—Arguably, each computer engineer undergrad In this work, we describe the tools and design choices used should build a simple processor in the pursuit of their degree to to create RISC-V processors on an FPGA. This includes the help them internalize the basic design principles and properties tools used to simulate the RISC-V programs, the tools used to of a computer. With the proliferation of FPGAs in universities this is, easily, realizable in most undergraduate curricula. Many create the processor on the FPGA, and the design choices modern courses on computer architecture or organization rely on made to make the design tractable for undergraduates. We MIPS architectures (among others) as the base processor to learn provide links to two processors created in our course, and with, but the MIPS architecture has little commercial success describe additional extensions that were done by these students and real-world implementations that will allow students to get to get advanced badges in the course. The hope of this work is additional career benefit from building and learning about a used architecture. The increasing industrial interest of RISC- to provide computer engineering educators and students with V ISA, its free availability, and its early success in real-world an idea on how to approach the base design of a RISC-V adoption makes this processor a great potential candidate in processor.
    [Show full text]
  • Visual Computer Simulator Teaching Tools
    Proceedings of the 2001 Winter Simulation Conference B. A. Peters, J. S. Smith, D. J. Medeiros, and M. W. Rohrer, eds. A CROWD OF LITTLE MAN COMPUTERS: VISUAL COMPUTER SIMULATOR TEACHING TOOLS William Yurcik Hugh Osborne Department of Applied Computer Science School of Computing & Mathematics Illinois State University University of Huddersfield Normal, IL 61790, U.S.A. Queensgate, Huddersfield, HD1 3DH, U.K. ABSTRACT complex to understand; and (C) cryptically documented. This makes executing laboratory experiments for students a This paper describes the use of a particular type of com- challenge requiring extensive preparation and the result may puter simulator as a tool for teaching computer architec- be skills and knowledge not transferable to other machines. ture. The Little Man Computer (LMC) paradigm was de- Third, computer architecture is intimidating to most veloped by Stuart Madnick of MIT in the 1960s and has students – while students may have a high level computer stood the test of time as a conceptual device that helps stu- literacy of software applications, languages, and peripher- dents understand the basics of how a computer works. als, many have incomplete, unrealistic, and sometimes pro- With the success of the LMC paradigm, LMC simulators foundly strange conceptions of how a computer works un- have also proliferated. We compare and contrast the cur- derneath the cover. Thus, most students are reluctant to rent crowd of LMC simulators highlighting visual features. figuratively or literally open the computer cover for dis- We found unexpected insights since despite starting with covery, scared of the binary can-of-worms they do not un- the same paradigm with the same goals, each implementa- derstand.
    [Show full text]
  • Arxiv:2104.09502V3 [Cs.AR] 24 Jun 2021
    CodeAPeel: An Integrated and Layered Learning Technology For Computer Architecture Courses A. Yavuz Oruc1, Abdullah Atmaca2, Y. Nevzat Sengun3, A. Semi Yenimol3 1 University of Maryland, College Park, MD 20740, USA, 2 Everon, Amsterdam, Netherlands 3 Bilkent University, Ankara, Turkey Abstract. This paper introduces a versatile, multi-layered technology to help support teach- ing and learning core computer architecture concepts. This technology, called CodeAPeel is already implemented in one particular form to describe instruction processing in compiler, assembly, and machine layers of a generic instruction set architecture by a comprehensive simulation of its fetch-decode-execute cycle as well as animation of the behavior of its CPU registers, RAM, VRAM, STACK memories, various control registers, and graphics screen. Un- like most educational CPU simulators that simulate a real processor such as MIPS or RISC-V, CodeAPeel is designed and implemented as a generic RISC instruction set architecture simu- lator with both scalar and vector instructions to provide a dual-mode processor simulator as described by Flynn's classification of SISD and SIMD processors. Vectorization of operations is built into the instruction repertoire of CodeAPeel, making it straightforward to simulate such processors with powerful vector instructions. Keywords: Assembly-language, computer architecture, frame buffer, graphics, learning tech- nology, processor simulation, SISD processor, SIMD processor, screen programming, vector processing. 1 Introduction Computer organization and architecture courses are taught regularly in most electrical and computer engineering as well as computer science curricula in universities and colleges across the globe. It is common practice to use software tools to teach key concepts in such courses.
    [Show full text]
  • Assembly Language Slides
    Computer Architecture & Assembly Language Surface Pro 5 vs. MacBook Pro 2017 You are going to watch the marketing videos for each of these laptops. You need to decide which you would rather and why? Surface Pro 5 https://www.youtube.com/watch?v=sHp7f00JY8Q MacBook Pro 2017 https://www.youtube.com/watch?v=1yVF-N__JKk Activity: Surface Pro 5 vs. MacBook Pro 2017 Marketing Nonsense The videos were full of marketing buzzwords that sell items but don’t really mean anything! “This is the best speaker system ever implemented on a surface pro” doesn’t mean much if the old surface pro didn’t even have one. To make informed decisions we should look at the tech specs of comparable systems. Then we should decide on what is best for the use we have in mind. Components of Computer Systems Internal Components Let’s look at what’s inside a laptop or desktop. We’ll look at what each component does and why they are important. When we have worked out what is important and why, we can make informed decisions about which laptop, phone, or gaming console is better. Computer Components Motherboard The motherboard is maybe the most important component within a computer. It is a PCB (printed circuit board) that connects all the components of a computer system together. It is also where most external devices (mouse, keyboard) connect to the computer. Motherboard Computer Components Computer Components CPU Socket Extension Activity: Seating a CPU CPU The CPU (Central Processing Unit) is the ‘brain’ of the computer. On personal computers and small workstations, the CPU is housed in a single chip called a microprocessor.
    [Show full text]
  • Brownfield, Andrew 2013 Thesis.Pdf
    IMPROVING STUDENT COMPREHENSION THROUGH INTERACTIVE MICROARCHITECTURE SIMULATION AND VISUALIZATION A Thesis by ANDREW BROWNFIELD Submitted to the Graduate School at Appalachian State University in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE December 2013 Department of Computer Science IMPROVING STUDENT COMPREHENSION THROUGH INTERACTIVE MICROARCHITECTURE SIMULATION AND VISUALIZATION A Thesis by ANDREW BROWNFIELD December 2013 APPROVED BY: Dr. Cindy Norris Chairperson, Thesis Committee Professor Frank Barry Member, Thesis Committee Dr. Alice McRae Member, Thesis Committee Dr. James T. Wilkes Chairperson, Computer Science Edelma D. Huntley Dean, Research and Graduate Studies Copyright by Andrew Brownfield 2013 All Rights Reserved Abstract IMPROVING STUDENT COMPREHENSION THROUGH INTERACTIVE MICROARCHITECTURE SIMULATION AND VISUALIZATION. Andrew Brownfield B.S., Appalachian State University M.S., Appalachian State University Chairperson: Dr. Cindy Norris The curricula of most Computer Science departments include at least one course on computer organization and assembly language. The seminal concepts covered by such courses bridge the gap between hardware and software by introducing multiple layers of abstraction. Appalachian State University introduces this material in the course “Introduction to Computer Systems.” The current structure of the course teaches the concepts using the hypothetical LC-3 processor, as presented in Patt and Patel’s textbook “Introduction to Computing Systems: From Bits & Gates to C & Beyond (2nd edition).” Prior to the completion of the work presented in this thesis, tools existed for the assembly of LC-3 programs and simulation of the assembled code; however, no simulator existed to demonstrate the function of the microarchitectural level. In this thesis, research on educational simulators is presented, with an em- phasis on microarchitectural and graphical style simulators.
    [Show full text]