Computation Structures 2: Computer Architecture

بواسطة: edX

Overview

Digital systems are at the heart of the information age in which we live, allowing us to store, communicate and manipulate information quickly and reliably. This computer science course is a bottom-up exploration of the abstractions, principles, and techniques used in the design of digital and computer systems. If you have a rudimentary knowledge of electricity and some exposure to programming, roll up your sleeves, join in and design a computer system!

This is Part 2 of a 3-part series on digital systems, teaching the fundamentals of computer architecture and is based on a course offered by the MIT Department of Electrical Engineering and Computer Science. Topics include instruction set architectures and assembly language, stacks and procedures, 32-bit computer architecture, the memory hierarchy, and caches.

Using your browser for design entry and simulation, you’ll implement a 32-bit computer using our gate library and write assembly language programs to explore the hardware/software interface.

Learner Testimonial

“If you look back, we've done sooooo much: assembly programming, stack crawling (detective work), building a 32-bit computer, for crying out loud, and also learnt about caches as the cherry on top (which really helped me because I always had trouble understanding how temporary memory worked). And to top it off, they're promising us more exciting courses in the future.” -- Previous Student

Syllabus

  • Instruction Set Architectures: datapaths and FSMs, programmable datapaths, the von Neumann model, storage, ALU instructions, constant operands, memory access, branches, jumps.  
  • Assembly Language: from assembly language to binary, symbols and labels, instruction macros.
  • Models of Computation: computability, universality, uncomputable functions.
  • Compilers: interpretation vs. compilation, compiling expressions, compiling statements, compiler frontend, optimization and code generation.
  • Procedures and Stacks: procedural abstraction, activation records and stacks, stack frame organization, compiling a procedure, stack detective.
  • Building the Beta: circuit building blocks, ALU instructions, load and store, jumps and branches, exceptions.
  • The Memory Hierarchy: memory technologies, hierarchical memory systems, the locality principle and caching, direct-mapped caches, block size, cache conflicts, associative caches, write strategies.
  • Labs: simple assembly programming, Quicksort procedure, designing the 32-bit Beta processor.

Taught by

Chris Terman, Steve Ward and ​Silvina Hanono Wachman

Computation Structures 2: Computer Architecture
الذهاب الي الدورة

Computation Structures 2: Computer Architecture

بواسطة: edX

  • edX
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • أيام محددة
  • beginner
  • English
8.1.2PHP Version365msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (200ms)
    • Application (164ms)
    • 1 x Booting (54.86%)
      200.34ms
      1 x Application (44.93%)
      164.08ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed55.54ms
      • select * from `courses` where `slug_ar` = 'computation-structures-2:-computer-architecture' limit 1
        6.52ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. computation-structures-2:-computer-architecture
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-04-16 13:16:17' where `id` = 1785
        47.77ms/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-16 13:16:17
        • 1. 1785
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (6)
        190μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        150μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (3) and `institutions`.`deleted_at` is null
        170μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (1) and `providers`.`deleted_at` is null
        170μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 1776 limit 1
        570μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 1776
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        v3mUsOFYbL9LDNQlJi6ro44JZC6iacYnc3Soc5Qv
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/comput...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/computation-structures-2:-computer-architecture
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "13.59.222.100" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "9313f4cd8990863e-ORD" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "x-forwarded-for" => array:1 [ 0 => "13.59.222.100" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "13.59.222.100" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "9313f4cd8990863e-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_X_FORWARDED_FOR" => "13.59.222.100" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "15634" "REMOTE_ADDR" => "172.69.17.24" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/computation-structures-2:-computer-architecture" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1744809377.1336 "REQUEST_TIME" => 1744809377 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Wed, 16 Apr 2025 13:16:17 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImFHOUU2TUoyRUtrdmhrWlljaHE0ZGc9PSIsInZhbHVlIjoic0t2WlplMnNtYmJ1ajBqR2Vha09MY3EvOFpGakZobENTTDJpc0hTa3JHUVE5aVVaU3VGM1lZR09YeFJXQnA4cGJWRnZUSmhqU2JTdXpIdWhwdkhwMGE1S0JRblVtUHNYMFdVMVlxdkVHd2VWSGtmS2FkYW0vcjNCdVdNcWJVb2giLCJtYWMiOiI5N2VmZDY4NGMwODVjMmQzYTMyNDBmNGMzYWY2ZmYxNzcwN2ZjNTRiY2JkZWE0ODlmYzJkODEwOGIzZjBhNWQzIiwidGFnIjoiIn0%3D; expires=Wed, 16 Apr 2025 15:16:17 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6ImFHOUU2TUoyRUtrdmhrWlljaHE0ZGc9PSIsInZhbHVlIjoic0t2WlplMnNtYmJ1ajBqR2Vha09MY3EvOFpGakZobENTTDJpc0hTa3JHUVE5aVVaU3VGM1lZR09YeFJXQnA4cGJWRnZUS" 1 => "laravel_session=eyJpdiI6Imowd1RhRXd5Nm92QmRkeElEZG5FV3c9PSIsInZhbHVlIjoia1ZTZW9lby91eEF1OVpmYzV4b2drZ3BibEN5Y0lTclU5SGE3MHNGR3Qycmt2U2FJeVJlOEs1Mzc3VE1pUGExQmhKMHlHWFRvUHlNQWFNcWk1cUtnOVhJTW82eVdSSyt1RHBEN3JaY1pnT0RyZUR2ZkFDN0JvcDB3bjZIb2FXU2IiLCJtYWMiOiIxMzkzZjMzMjc5M2M3ZDRjZTM2NjI2Mzc4YzE0ZjQ2NzQxZDBhYTUyNmQ0ZTBlYTA3YTkzZTU4ZjU2NjljZmE2IiwidGFnIjoiIn0%3D; expires=Wed, 16 Apr 2025 15:16:17 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6Imowd1RhRXd5Nm92QmRkeElEZG5FV3c9PSIsInZhbHVlIjoia1ZTZW9lby91eEF1OVpmYzV4b2drZ3BibEN5Y0lTclU5SGE3MHNGR3Qycmt2U2FJeVJlOEs1Mzc3VE1pUGExQmhK" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImFHOUU2TUoyRUtrdmhrWlljaHE0ZGc9PSIsInZhbHVlIjoic0t2WlplMnNtYmJ1ajBqR2Vha09MY3EvOFpGakZobENTTDJpc0hTa3JHUVE5aVVaU3VGM1lZR09YeFJXQnA4cGJWRnZUSmhqU2JTdXpIdWhwdkhwMGE1S0JRblVtUHNYMFdVMVlxdkVHd2VWSGtmS2FkYW0vcjNCdVdNcWJVb2giLCJtYWMiOiI5N2VmZDY4NGMwODVjMmQzYTMyNDBmNGMzYWY2ZmYxNzcwN2ZjNTRiY2JkZWE0ODlmYzJkODEwOGIzZjBhNWQzIiwidGFnIjoiIn0%3D; expires=Wed, 16-Apr-2025 15:16:17 GMT; path=/XSRF-TOKEN=eyJpdiI6ImFHOUU2TUoyRUtrdmhrWlljaHE0ZGc9PSIsInZhbHVlIjoic0t2WlplMnNtYmJ1ajBqR2Vha09MY3EvOFpGakZobENTTDJpc0hTa3JHUVE5aVVaU3VGM1lZR09YeFJXQnA4cGJWRnZUS" 1 => "laravel_session=eyJpdiI6Imowd1RhRXd5Nm92QmRkeElEZG5FV3c9PSIsInZhbHVlIjoia1ZTZW9lby91eEF1OVpmYzV4b2drZ3BibEN5Y0lTclU5SGE3MHNGR3Qycmt2U2FJeVJlOEs1Mzc3VE1pUGExQmhKMHlHWFRvUHlNQWFNcWk1cUtnOVhJTW82eVdSSyt1RHBEN3JaY1pnT0RyZUR2ZkFDN0JvcDB3bjZIb2FXU2IiLCJtYWMiOiIxMzkzZjMzMjc5M2M3ZDRjZTM2NjI2Mzc4YzE0ZjQ2NzQxZDBhYTUyNmQ0ZTBlYTA3YTkzZTU4ZjU2NjljZmE2IiwidGFnIjoiIn0%3D; expires=Wed, 16-Apr-2025 15:16:17 GMT; path=/; httponlylaravel_session=eyJpdiI6Imowd1RhRXd5Nm92QmRkeElEZG5FV3c9PSIsInZhbHVlIjoia1ZTZW9lby91eEF1OVpmYzV4b2drZ3BibEN5Y0lTclU5SGE3MHNGR3Qycmt2U2FJeVJlOEs1Mzc3VE1pUGExQmhK" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "v3mUsOFYbL9LDNQlJi6ro44JZC6iacYnc3Soc5Qv" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/computation-structures-2:-computer-architecture" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]