Cognition involves: understanding and producing language, solving problems and making decisions, memory, and attention (over time). The attention and basic memory parts are no problem from a computer stand-point (the hierarchy may need work). The understanding and producing language portion is already well on its way in software (and would probably be expensive resource-wise in hardware). Solving problems and making decisions is doable from a concrete terms/ symbolism/intuition standpoint, but true abstraction may be problematic...