CAIE A Level Computer Science Advanced Theory 9608
CAIE A Level Computer Science Advanced Theory 9608
  • Home
  • Download
  • Social
  • Features
    • Lifestyle
    • Sports Group
      • Category 1
      • Category 2
      • Category 3
      • Category 4
      • Category 5
    • Sub Menu 3
    • Sub Menu 4
  • Contact Us

Travel

Fashion

Contact

The Karnaugh map (KM or K-map) is a method of simplifying Boolean algebra expressions.

Rules for  grouping:
  • No zeros allowed.
  • No diagonals.
  • Only power of 2 number of cells in each group.
  • Groups should be as large as possible.
  • Every one must be in at least one group.
  • Overlapping allowed.
  • Wrap around allowed.
  • Fewest number of groups possible.

  • Click here to download pdf showing grouping rules

    Flip Flops

    ( As much as I know from CAIE ) In general Flip flops can be understood as the circuits used for storage purposes . A single flip flop can be used to store a single bit. Hence they can be used in memory in computer systems. As far as I have been through A levels , I came across its 3 types
    1. NAND GATES BASED SR FLIP FLOP
    2. NOR GATES BASED SR FLIP FLOP 
    3. JK FLIP FLOP
    NAND GATES BASED SR FLIP FLOP
    This circuit becomes unstable when S=0 and R=0.
    Why?
    Because when S = 0 and R = 0 , Q and complement of Q have same value but as we know complement of Q cannot be equal to Q  so we say that the flip flop has become unstable.



    NOR GATES BASED SR FLIP FLOP 
    This circuit becomes unstable when S=1 and R=1.
    Why?
    Because when S = 1 and R = 1 , Q and complement of Q have same value but as we know complement of Q cannot be equal to Q so we say that the flip flop has become unstable.













    Differences   :  RISC Vs CISC
    • RISC has fewer instructions // CISC has more instructions
    • RISC has many registers // CISC has few registers
    • RISCs instructions are simpler  // CISC’s instructions are more complex
    • RISC has a few instruction formats // CISC has many instruction formats
    • RISC usually uses single-cycle instructions // CISC uses multi-cycle instructions
    • RISC uses fixed-length instructions  // CISC uses variable-length instructions
    • RISC has better pipelineability  // CISC has poorer pipelineability
    • RISC requires less complex circuits // CISC requires more complex circuits
    • RISC has fewer addressing modes  // CISC has more addressing modes
    • RISC makes more use of RAM // CISC makes more use of cache/less use of RAM
    • RISC has a hard-wired control unit  // CISC has a programmable control unit
    • RISC only uses load and store instructions to address memory  // CISC has many types of instructions to address memory
    • RISC emphasizes on software // CISC emphasizes on hardware



    Hard wired  CU means CU is designed as logic circuits to handle instructions whereas Programmable CU means CU has a ROM inside it for microprogramming to handle instructions ..

    Advantages of CISC

    1. Compiler has to do little work during translation
    2. Because the code is short , little RAM is required to store instructions 
    Using the same points above You can figure out the disadvantages of RISC by negating the points

    Disadvantages of CISC
    1. High implementation cost
    2. Programs run more slowly due to complicated instructions 
    Using the same points above You can figure out the advantages of RISC by negating the points


    Pipeline Problems 

    ( whole text is taken from cs.stanford.edu/people/eroberts/courses/soco/projects/risc/pipelining/index.html U just need to read it briefly and understand some problems related to pipelining. Questions related to dependency issues have been asked in CAIE exams. So u need to be aware of these problems. )

    A data dependency occurs when an instruction depends on the results of a previous instruction. A particular instruction might need data in a register which has not yet been stored since that is the job of a preceeding instruction which has not yet reached that step in the pipeline.

    For example:

    add $r3, $r2, $r1
    add $r5, $r4, $r3
    more instructions that are independent of the first two
    In this example, the first instruction tells the processor to add the contents of registers r1 and r2 and store the result in register r3. The second instructs it to add r3 and r4 and store the sum in r5. We place this set of instructions in a pipeline. When the second instruction is in the second stage, the processor will be attempting to read r3 and r4 from the registers. Remember, though, that the first instruction is just one step ahead of the second, so the contents of r1 and r2 are being added, but the result has not yet been written into register r3. The second instruction therefore cannot read from the register r3 because it hasn't been written yet and must wait until the data it needs is stored. Consequently, the pipeline is stalled and a number of empty instructions (known as bubbles go into the pipeline. Data dependency affects long pipelines more than shorter ones since it takes a longer period of time for an instruction to reach the final register-writing stage of a long pipeline.

    MIPS' solution to this problem is code reordering. If, as in the example above, the following instructions have nothing to do with the first two, the code could be rearranged so that those instructions are executed in between the two dependent instructions and the pipeline could flow efficiently. The task of code reordering is generally left to the compiler, which recognizes data dependencies and attempts to minimize performance stalls.

    Branch instructions are those that tell the processor to make a decision about what the next instruction to be executed should be based on the results of another instruction. Branch instructions can be troublesome in a pipeline if a branch is conditional on the results of an instruction which has not yet finished its path through the pipeline.

    For example:

    Loop :


    add $r3, $r2, $r1
    sub $r6, $r5, $r4
    beq $r3, $r6, Loop
    The example above instructs the processor to add r1 and r2 and put the result in r3, then subtract r4 from r5, storing the difference in r6. In the third instruction, beq stands for branch if equal. If the contents of r3 and r6 are equal, the processor should execute the instruction labeled "Loop." Otherwise, it should continue to the next instruction. In this example, the processor cannot make a decision about which branch to take because neither the value of r3 or r6 have been written into the registers yet.

    The processor could stall, but a more sophisticated method of dealing with branch instructions is branch prediction. The processor makes a guess about which path to take - if the guess is wrong, anything written into the registers must be cleared, and the pipeline must be started again with the correct instruction. Some methods of branch prediction depend on stereotypical behavior. Branches pointing backward are taken about 90% of the time since backward-pointing branches are often found at the bottom of loops. On the other hand, branches pointing forward, are only taken approximately 50% of the time. Thus, it would be logical for processors to always follow the branch when it points backward, but not when it points forward. Other methods of branch prediction are less static: processors that use dynamic prediction keep a history for each branch and uses it to predict future branches. These processors are correct in their predictions 90% of the time.

    Still other processors forgo the entire branch prediction ordeal. The RISC System/6000 fetches and starts decoding instructions from both sides of the branch. When it determines which branch should be followed, it then sends the correct instructions down the pipeline to be executed.




    In computers, parallel processing is the processing of program instructions by dividing them among multiple processors with the objective of running a program in less time.In other words it is the simultaneous use of several processors to perform a single job

    Four basic computer architectures are
     $ single instruction, single data (SISD), 
     $ single instruction, multiple data (SIMD),
     $ multiple instruction, single data (MISD),
     $ multiple instruction, multiple data (MIMD)

    Single instruction, single data (SISD)
    @  A computer that does not have the ability for parallel processing
    @ There is only one processor executing one set of instructions on a single set of data. 

    Single instruction, multiple data (SIMD)
    @ The processor has several ALUs. Each ALU executes the same instruction but on different data.

    Multiple instruction, single data (MISD)

    Multiple instruction, multiple data (MIMD)
    @ There are several processors. Each processor executes different instructions drawn from a common pool. Each processor operates on different data drawn from a common pool. 




                              Massively parallel Computers

    In a massively parallel computer, large number of processors work to perform a set of coordinated computations in parallel.

    Features and Requirements : 

    HARDWARE CONCERNS
    Processors need to be able to communicate so that processed data can be transferred from one processor to another
    Hence each processor needs a link to every other processor resulting in a challenging topology to design 

    SOFTWARE CONCERNS
     Appropriate programming language is needed which allows data to be processed by multiple processors simultaneously
    Hence the process of writing programs is complex. Any normal program needs to be divided into block of codes such that each block can be processed independently by a processor 

    In computing, a communication protocol refers to the set of rules that computers use to communicate with each other. The protocol defines the signals that the computers will give each other, and other details such as how communication begins and/or ends.

    The most commonly used protocol on the Internet today is the TCP/IP protocol. Its implementation can be viewed as a stack, with 4 layers where each layer has its own functionality. EACH LAYER OF THE STACK CAN BE IMPLEMENTED AS A SOFTWARE AND BASICALLY, THE WHOLE PROTOCOL IS ALSO A SOFTWARE.

    Now before discussing the layer of  TCP/IP  protocol,  just have an idea of the OSI model. Actually OSI model, in simple terms, is a standard framework designed to assist the development of a protocol. It has seven layers.



    Now u can see that some layers of OSI model are combined with other layers and implemented as a single layer in TCP/IP  stack.

    Click here to understand TCP/IP

    Functions of layers of TCP/IP protocol

    • Application layer
    • TCP layer
    1.  allows applications to exchange data  
    2.  establishes and maintains a connection until the exchange of data is complete 
    3.  determines how to break application data into packets
    4.   adds sequence/packet number to (TCP) header sends packets to and accepts packets from the network / Internet layer
    5.   manages flow control // manages congestion avoidance 
    6.  acknowledges all packets that arrive
    7.   detects when a packet has not arrived at the destination
    8.   handles retransmission of dropped packets
    9.   reassembles packets into the correct order 
    • IP Layer
    1. routes the packets around the network 
    2. adds to the IP header a source/destination address for each packet
    3. encapsulates data into a datagram
    4. passes datagram to the network access layer (for transmission on the LAN)// passes datagram to the transport layer (on arrival at the destination)
    • Network Access Layer
    1. encapsulates datagram form IP layer into frames
    2. adds sender and receiver MAC address to link header of packets
    3. sends them to physical layer where data is converted into bits for transmission over a medium

    BIT TORRENT PROTOCOL

    BitTorrent protocol provides peer-to-peer file sharing.

    Exchange of data using Bit torrent protocol

    • torrent descriptor file is made available.
    • the file to be shared is split into pieces
    • a peer can act as a seed by uploading a piece of file
    • a peer downloading the file downloads its pieces simultaneously from various seeds
    • once a peer has downloaded a part of file then it can act as a seed for the part of file it has downloaded
    • central servers known as trackers maintain a list of all the peers and the part of file they have
    Some important terminologies
    Tracker: Central server that exchanges IP addresses of the peers allowing them to connect
    Seed: A peer computer that is uploading a part of file
    Swarm: All the connected peers that have part of file to be downloaded or uploaded.


    Useful Video Links
       



                 Overview of monitoring and control systems


    The major difference between the monitoring and control systems is that control system makes use of feedback and actuators whereas monitoring system does not.

    # For Monitoring System :
    1. Sensors ( Specify the sensor like temperature sensor, pressure sensor as per que )  : To record ______ by sensing the changes 
    2. ADC : To convert the reading into a digital value
    3. Storage Device : To store readings from sensors
    # For Control Systems:
    1. ADC : To convert the reading into a digital value
    2. Microprocessor  : To execute Control software
    3. Sensors  ( Specify the sensor like temperature sensor, pressure sensor as per que ) : To record ______ by sensing the changes 
    4.  Actuators ( Specify the actuator as per question like heater , cooler etc ) : To maintain ______ by detecting changes as per the control software


                                                    User Defined Data Types

    A user-defined data type (UDT) is a data type that derived from an existing data type. You can use UDTs to extend the built-in types already available and create your own customized data types.


    Non composite Data Type : Single data type not involving reference to any other data type 
           Now please note that first four are non composite and in built data types whereas pointer and enumerated data types are non composite and user defined data types
    1. * Integer  ( Whole numbers )
    2. * Real ( Decimal Numbers )
    3. * String (Alphanumeric Data )
    4. * Boolean ( True/False )
    5. * Pointer ( Number used to reference a memory location )
    6. * Enumerated ( A list of possible data values )
    Enumerated 
    Pseudocode : TYPE
                                 DECLARE Alphabets : ( "A", "B", "C" )
                                 DECLARE Num : 1...5000
                            ENDTYPE
     || THE non-composite data type used in the Alphabets and Num declarations is ENUMERATED.

    Composite Data Type: Data type constructed from other data types
    1. * Set ( Collection of finite number of items with no order )  
    2. * Record ( Collection of related items of different data types )
    3. * Class ( Blueprint from which objects are made , Gives properties and methods for objects ) 
    Home

    ABOUT ME

    I could look back at my life and get a good story out of it. It's a picture of somebody trying to figure things out.

    SUBSCRIBE & FOLLOW

    POPULAR POSTS

    • 3.3.6 Parallel processing
    • 3.3.5 RISC processors
    • 3.2.1 Protocols
    Tasty Treats
    Travel Journal

    Advertisement

    Contact Form

    Name

    Email *

    Message *

    Search This Blog

    • 2019 12
      • June 12
        • 3.3.3 Karnaugh Maps
        • 3.3.4 Flip-flops
        • 3.3.5 RISC processors
        • 3.3.6 Parallel processing
        • 3.2.1 Protocols
        • 3.2.2 Circuit switching, packet switching and routers
        • 3.2.3 Local Area Networks (LAN)
        • 3.1.3 Real numbers and normalised floating-point r...
        • 3.1.2 File organisation and access
        • 3.6.2 Bit manipulation to monitor and control devices
        • 3.6.1 Overview of monitoring and control systems
        • 3.1.1 User Defined Data Types
    Powered by Blogger

    Report Abuse

    3.3.6 Parallel processing

    In computers, parallel processing is the processing of program instructions by dividing them among multiple processors with the objective of running a program in less time.In other words it is  the simultaneous use of several  processors to perform a single job Four basic computer  architectures are  $ single instruction, single data  (SISD),   $ single instruction, multiple data  (SIMD),  $ multiple instruction, single data  (MISD),  $ multiple instruction, multiple data  (MIMD) Single instruction, single data  (SISD) @    A computer that does not have the ability for parallel processing @ There is only one processor executing one set of instructions on a single set of data.   Single instruction, multiple data  (SIMD) @  The processor has several ALUs. Each ALU executes the same instruction but on different data. Multiple instruction, single data  (MISD) Multiple instru...
    Image

    3.3.5 RISC processors

    Differences   :  RISC Vs CISC • RISC has fewer instructions // CISC has more instructions • RISC has many registers // CISC has few registers • RISCs instructions are simpler  // CISC’s instructions are more complex • RISC has a few instruction formats // CISC has many instruction formats • RISC usually uses single-cycle instructions // CISC uses multi-cycle instructions • RISC uses fixed-length instructions  // CISC uses variable-length instructions • RISC has better pipelineability  // CISC has poorer pipelineability • RISC requires less complex circuits // CISC requires more complex circuits • RISC has fewer addressing modes  // CISC has more addressing modes • RISC makes more use of RAM // CISC makes more use of cache/less use of RAM • RISC has a hard-wired control unit  // CISC has a programmable control unit • RISC only uses load and store instructions to address memory  // CISC has many types of instructions to address memo...
    Image

    3.3.4 Flip-flops

    Flip Flops ( As much as I know from CAIE ) In general Flip flops can be understood as the circuits used for storage purposes . A single flip flop can be used to store a single bit. Hence they can be used in memory in computer systems. As far as I have been through A levels , I came across its 3 types NAND GATES BASED SR FLIP FLOP NOR GATES BASED SR FLIP FLOP  JK FLIP FLOP NAND GATES BASED SR FLIP FLOP This circuit becomes unstable when S=0 and R=0. Why? Because when S = 0 and R = 0 , Q and complement of Q have same value but as we know complement of Q cannot be equal to Q  so we say that the flip flop has become unstable. NOR GATES BASED SR FLIP FLOP  This circuit becomes unstable when S=1 and R=1. Why? Because when S = 1 and R = 1 , Q and complement of Q have same value but as we know complement of Q cannot be equal to Q so we say that the flip flop has become unstable.
    Image

    Oddthemes

    Random Products

    Designed by OddThemes | Distributed by Gooyaabi Templates