Them Posted May 8, 2011 Share Posted May 8, 2011 Hello, I signed up for the final Computer Architecture course in my college for next semester. This means a large portion of the summer dedicated towards preparing and studying. However, I need to focus on somethings more than others, specifically ones that will benefit me programming (C++) wise. Can someone explain to me exactly how my knowledge in such concepts can affect my programming expertise? For example these are some of the topics that we will cover next semester (I know it's a long list). Can someone explain to me how some of these can help me with being a better programmer exactly? Almost everything I learned on the subject has been too general or too specific for me to apply to my knowledge. As in I have a general understanding so far that knowing how hardware works will definitely affect my software design in terms of efficiency since obviously programming is done into hardware. But that's about it, I can't think of anything specific or very insightful, or at least useful to my programming expertise. Clocks and Clock Cycles SRAM DRAM Memory Hierarchy Various types of caches (as well as measuring and improving cache performance) architecture on performance AMAT Virtual Memory Disk structure Disk performance ad costs (controlled overhead, rotational latency etc) Buses: types, synchronous versus asynchronous Interfacing I/O Devices to the Processor, Memory, and OS Memory-mapped I/O versus special I/O instructions Polling Interrupt driven I/O DMA -- operations, performance, interaction with virtual memory RAID Network Topologies (Meshes, Corssbar Switching, multi stage) Types of Multiprocessors (SMP, UMA, NUMA, SMP) Multiprocessor synchronization Pipelining Hardware Multithreading Flynn's Taxonomy SISD, SIMD, MISD, MIMD multi processors Indepth NNIDIA GPU (some CUDA programming) Thank you very much. Link to comment Share on other sites More sharing options...
Yoseph Posted May 9, 2011 Share Posted May 9, 2011 It looks quite hardwarey your course, but that doesn't mean it can't help you with programming. C++ especially allows you to be very efficient with your programming, and by understanding how hardware works allows you to program faster, more efficient, more robust code. I'm about to start Computer Science at uni, and I'm hoping my course is quite flexible as I'm more interested in programming as you are. Link to comment Share on other sites More sharing options...
DevilSolution Posted May 10, 2011 Share Posted May 10, 2011 Almost none of that helps for programming, infact only programming and maths helps you program, some specifics on hardware would help you if you need a program relative to that specific hardware (rare) Link to comment Share on other sites More sharing options...
DevilSolution Posted September 9, 2011 Share Posted September 9, 2011 Almost none of that helps for programming, infact only programming and maths helps you program, some specifics on hardware would help you if you need a program relative to that specific hardware (rare) i lied Everything to some extent is needed for programming, you may need to dip into certain aspects of them area's to optimise your program or to even get it working. What i meant to say is that a software course would be better for programming as it would teach you more about algorithms, loops, program structure, library's (in which some of the things you mentioned would be encapsulated) as well as lower end stuff like data types, memory addressing and offsets etc (c++ and the likes). Also i imagine you would be taught certain concepts in programming which can be challenging to understand from more formal tutorials such as classes and objects and when in the program they are indivisible or totally different (is-a / has-a / is-has-a many). Some advanced logical expressions may be easier to understand when taught also. In other words what you will learn WILL help you program but only if thats the area of program you wish to do, as far as programming goes itself it has its own list of modules Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now